代码拉取完成,页面将自动刷新
// 双栈解法
function getData(s) {
const arr = [];
for(let i = 0; i < s.split("").length; i++) {
if (s[i] !== "#") {
arr.push(s[i]);
} else {
if (arr.length) {
arr.pop()
}
}
}
return arr.join("")
}
var backspaceCompare = function(s, t) {
return getData(s) === getData(t)
};
// 双指针写法
var backspaceCompare = function(S, T) {
let i = S.length - 1,
j = T.length - 1,
skipS = 0,
skipT = 0;
// 大循环
while(i >= 0 || j >= 0){
// S 循环
while(i >= 0){
if(S[i] === '#'){
skipS++;
i--;
}else if(skipS > 0){
skipS--;
i--;
}else break;
}
// T 循环
while(j >= 0){
if(T[j] === '#'){
skipT++;
j--;
}else if(skipT > 0){
skipT--;
j--;
}else break;
}
if(S[i] !== T[j]) return false;
i--;
j--;
}
return true;
};