Skip to content

[844] Backspace String Compare

https://leetcode.com/problems/backspace-string-compare/description/

  • algorithms
  • Easy (43.51%)
  • Source Code: 844.backspace-string-compare.py
  • Total Accepted: 51.3K
  • Total Submissions: 112.3K
  • Testcase Example: '"ab#c"\n"ad#c"'

Given two strings S and T, return if they are equal when both are typed into empty text editors. # means a backspace character.

Example 1:

Input: S = "ab#c", T = "ad#c" Output: true Explanation: Both S and T become "ac".

Example 2:

Input: S = "ab##", T = "c#d#" Output: true Explanation: Both S and T become "".

Example 3:

Input: S = "a##c", T = "#a#c" Output: true Explanation: Both S and T become "c".

Example 4:

Input: S = "a#c", T = "b" Output: false Explanation: S becomes "c" while T becomes "b".

Note:

1 <= S.length <= 200
1 <= T.length <= 200
S and T only contain lowercase letters and '#' characters.

Follow up:

Can you solve it in O(N) time and O(1) space?
python
class Solution(object):
    def backspaceCompare(self, S, T):
        """
        :type S: str
        :type T: str
        :rtype: bool
        """
        return True if self.dismiss(T) == self.dismiss(S) else False

    def dismiss(self, S):
        while True:
            olds = S
            S = S.lstrip('#')
            idx = S.find('#')
            if idx > 0:
                S = S[:idx-1] + S[idx+1:]

            if olds == S: break

        return S

Last updated: