题目:给定 s 和 t 两个字符串,当它们分别别输入到空白的文本编辑器后,如果两者相等,返回 true。# 代表退格字符。
解题思路:利用栈(匹配问题是栈的强项)
步骤:(1)创建StringBuffer类对象,利用StringBuffer创建动态字符串数组
(2)遍历字符串,s或t,当遍历的字符非“#”时,将字符入栈,反之,将栈顶元素出栈
(3)比较最终的字符串
class Solution {
public boolean backspaceCompare(String s, String t) {
return build(s).equals(build(t));
}
public String build(String str){
StringBuffer sb = new StringBuffer();
for(int i = 0; i < str.length(); i++){
char ch = str.charAt(i);
if(ch != '#'){
sb.append(ch);
} else{
if(sb.length() > 0){
sb.deleteCharAt(sb.length()-1);
}
}
}
return sb.toString();
}
}