题目
给定 s 和 t 两个字符串,当它们分别被输入到空白的文本编辑器后,请你判断二者是否相等。# 代表退格字符。
如果相等,返回 true ;否则,返回 false 。
注意:如果对空文本输入退格字符,文本继续为空。
题解
使用双指针,倒序遍历
var backspaceCompare = function(s, t) {
s = s.split('')
t = t.split('')
let skipS = 0, skipT = 0;
for(let i = s.length-1 ,j=t.length-1; i>=0 || j>= 0;j--,i--){
while(i>=0){
if(s[i] === '#'){
skipS++;
i--;
}else if(skipS > 0){
skipS--;
i--;
}else{
break;
}
}
while(j>=0){
if(t[j] === '#'){
skipT++;
j--
}else if (skipT > 0){
skipT--;
j--;
}else{
break;
}
}
if(i>=0 && j>=0){
if(s[i] !== t[j]){
return false;
}
}else if(i >= 0 || j >= 0){
return false;
}
}
return true
};