Problem: 20. 有效的括号
思路 & 解题方法
简单模拟。
复杂度
时间复杂度:
O ( n ) O(n) O(n)
空间复杂度:
O ( n ) O(n) O(n)
Code
class Solution:
def isValid(self, s: str) -> bool:
d = collections.defaultdict(str)
d['('] = ')'
d['['] = ']'
d['{'] = '}'
sta = []
x = 0
for ch in s:
if x > 0:
if d[sta[-1]] == ch:
x -= 1
sta.pop()
else:
sta.append(ch)
x += 1
else:
sta.append(ch)
x += 1
return False if x else True