给定 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"。
class Solution {
public boolean backspaceCompare(String s, String t) {
StringBuffer s1 = new StringBuffer();
StringBuffer s2 = new StringBuffer();
int len1 = s.length();
int len2 = t.length();
//解题思路:
//遍历字符串,如果遇到的不是'#',则将当前字符追加到可变字符串s1,s2中,
//如果遇到的是'#',先判断s1,s2字符串的长度,为0则不执行删除
// > 0,则删除串中最后一个字符
for (int i = 0; i < len1; i++) {
if(s.charAt(i) != '#'){
s1.append(s.charAt(i));
}else if(s1.length() > 0){
s1.deleteCharAt(s1.length() - 1);
}
}
for (int i = 0; i < len2; i++) {
if(t.charAt(i) != '#'){
s2.append(t.charAt(i));
}else if(s2.length() > 0){
s2.deleteCharAt(s2.length() - 1);
}
}
return s1.toString().equals(s2.toString());
}
}