用堆栈来做,比较经典
- 左括号就push
- 右括号就peak,查看栈顶是否有匹配的括号:有就把栈顶元素pop,没有就报错
- 全部字符串结束后,堆栈是否为空:空合法,非空不合法
def isValid(s):
stack = []
paren_map = {')':'(',']':'[','}':'{'}
for c in s :
if c not in paren_map:
stack.append(c)
elif not stack or paren_map[c] != stack.pop():
return False
return not stack
leetcode 20
网友评论