[LeetCode-844比较含退格的字符串] | 刷题打卡

109 阅读1分钟

掘金团队号上线,助你 Offer 临门! 点击 查看详情

题目描述

给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。

注意:如果对空文本输入退格字符,文本继续为空。

示例1:

输入:S = "ab#c", T = "ad#c"
输出:true
解释:S 和 T 都会变成 “ac”。

解题思路

我们可以利用栈,将两个字符串处理成没有退格的字符串,然后进行比较即可:

  1. 首先处理我们的第一个字符串,我们将字符串的每个元素压入栈。如果遇到#我们就弹出一个元素;
  2. 当我们遍历完整个字符串的时候,我们就将栈中的字符输出组成字符串;
  3. 然后我们按相同的步骤处理第二个字符串
  4. 最后我们比较两个字符串是否相等

解题代码

var backspaceCompare = function (s, t) {
    const stackStr = [];
    for (const c of str) {
        if (c === '#') {
            stackStr.pop();
        } else {
            stackStr.push(c);
        }
    }
    return stackStr.join('');
};

总结

千里之行,始于足下。