[844] 比较含退格的字符串

63 阅读1分钟
/*
 * @lc app=leetcode.cn id=844 lang=javascript
 *
 * [844] 比较含退格的字符串
 */

// @lc code=start
/**
 * @param {string} s
 * @param {string} t
 * @return {boolean}
 */
var backspaceCompare = function (s, t) {
  let i = s.length - 1
  let j = t.length - 1
  let backspaceS = 0
  let backspaceT = 0
  while (i >= 0 || j >= 0) {
    while (i >= 0) {
      // 如果当前是#,指针向前
      if (s[i] === '#') {
        backspaceS++
        i--
        // 当前的退格大于0就指针向前,退格减1
      } else if (backspaceS > 0) {
        backspaceS--
        i--
      // 当前是字符,退格等于0,先跳出循环
      } else {
        break
      }
    }
    while (j >= 0) {
      if (t[j] === '#') {
        backspaceT++
        j--
      } else if (backspaceT > 0) {
        backspaceT--
        j--
      } else {
        break
      }
    }
    // 比较两个是不是一致,是就两个指针都往前挪
    if (s[i] !== t[j]) {
      return false
    }
    i--
    j--
  }
  return true
}
// @lc code=end