掘金团队号上线,助你 Offer 临门! 点击 查看详情
题目描述
给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。
注意:如果对空文本输入退格字符,文本继续为空。
示例1:
输入:S = "ab#c", T = "ad#c"
输出:true
解释:S 和 T 都会变成 “ac”。
解题思路
我们可以利用栈,将两个字符串处理成没有退格的字符串,然后进行比较即可:
- 首先处理我们的第一个字符串,我们将字符串的每个元素压入栈。如果遇到#我们就弹出一个元素;
- 当我们遍历完整个字符串的时候,我们就将栈中的字符输出组成字符串;
- 然后我们按相同的步骤处理第二个字符串
- 最后我们比较两个字符串是否相等
解题代码
var backspaceCompare = function (s, t) {
const stackStr = [];
for (const c of str) {
if (c === '#') {
stackStr.pop();
} else {
stackStr.push(c);
}
}
return stackStr.join('');
};
总结
千里之行,始于足下。