利用栈的先进后出,遍历字符串,当遇到字符为 ‘#’,则删掉前一个进栈的元素,最后将栈转为字符串str,传入S, T,进行比较
/**
* @param {string} S
* @param {string} T
* @return {boolean}
*/
var backspaceCompare = function(S, T) {
if(!S && !T) return true; // 两者皆为空,则返回true
if(!S || !T) return false; // 两者只有一个为空,则返回false
function getRes(N){ // 利用栈的先进后出,遍历字符串,当遇到字符为 ‘#’,则删掉前一个进栈的元素,最后转为字符串str
let stack = [], str = '';
for(let i=0;i<N.length;i++){
let item = N[i];
if(item === '#'){
stack.pop();
} else {
stack.push(item);
}
}
while(stack.length > 0){
str += stack.pop();
}
return str;
}
return getRes(S) === getRes(T) ? true : false;
};
网友评论