Leetcode 844 Backspace String Compare

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.

分析:
无非就是一个带取消键情况的判断输入是否相等的简单题目

思路:
说实话我第一时间还没反应过来这道题应该用栈这么显而易见的思想,果然还是对这些数据结构太不敏感了,还远远不行啊

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Solution(object):
def backspaceCompare(self, S, T):
"""
:type S: str
:type T: str
:rtype: bool
"""
def helper(s):
stack = []
for e in s:
if e == '#':
if stack:
stack.pop()
else:
stack.append(e)
return ''.join(stack)

return helper(S) == helper(T)


104 / 104 test cases passed.
difficulty: easy
Runtime: 38 ms