本文主要是介绍「优选算法刷题」:比较含退格的字符串,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、题目
给定 s
和 t
两个字符串,当它们分别被输入到空白的文本编辑器后,如果两者相等,返回 true
。#
代表退格字符。
注意:如果对空文本输入退格字符,文本继续为空。
示例 1:
输入:s = "ab#c", t = "ad#c" 输出:true 解释:s 和 t 都会变成 "ac"。
示例 2:
输入:s = "ab##", t = "c#d#" 输出:true 解释:s 和 t 都会变成 ""。
示例 3:
输入:s = "a#c", t = "b" 输出:false 解释:s 会变成 "c",但 t 仍然是 "b"。
提示:
1 <= s.length, t.length <= 200
s
和t
只含有小写字母以及字符'#'
二、思路解析
这道题的本质,还是考察我们对栈的特性的运用能力。
我们可以使用栈的数据结构来模拟文本编辑器的行为。遍历字符串,遇到非退格字符就入栈,遇到退格字符就出栈。
最后比较两个字符串是否相等。
三、完整代码
class Solution {public boolean backspaceCompare(String s, String t) {return check(s).equals(check(t));}public String check(String a){StringBuffer ret = new StringBuffer();for(int i = 0; i < a.length(); i++){char ch = a.charAt(i);if(ch != '#'){ret.append(ch);}else{if(ret.length() > 0){ret.deleteCharAt(ret.length() - 1);}}}return ret.toString();}
}
以上就是本篇博客的全部内容啦,如有不足之处,还请各位指出,期待能和各位一起进步!
这篇关于「优选算法刷题」:比较含退格的字符串的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!