题目
给定 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) {
char[] ss = s.toCharArray();
char[] tt = t.toCharArray();
return helper(ss).equals(helper(tt));
}
String helper(char[] c){
int i = 0,j = 0;
while(j < c.length){
if(c[j] != '#'){ //遇到字母 两个指针都往前走
c[i++] = c[j++];
}else {
j++;
if(i > 0) i--; // 遇到 #, i 指针向后退
}
}
return new String(c).substring(0,i);
}
}