LeetCode刷题,比较含退格字符串(844)

373 阅读1分钟

比较含退格字符串

给定 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("") // 返回不含退格的字符串
}