比较含退格字符串
给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。
解题代码
思路:遍历元素添加入栈中,根据不同的条件判断是否需要弹出栈顶元素
var backspaceCompare = function(s, t) {
return transForm(s) === transForm(t); // 比较两个经过处理的字符是否相等即可
};
var transForm = function(str){
const stack = [];
for (const s of str) {
if (s === "#" && stack.length > 0) { // 不加stack.length > 0判断,下面就可以直接写else 而不是else if
stack.pop(); // 弹出栈顶元素
} else if (s !== "#") {
stack.push(s); // 压入字符串
}
}
return stack.join("") // 返回不含退格的字符串
}