[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