第二十九天 Valid Parentheses
2018-09-19 本文已影响6人
业余马拉松选手
这也是一道非常经典的题目了
利用栈的特性
但写起来也还真不是那么简单,知道怎么做,和做出来,还是有差距的
思路就是,如果是左边的括号就入栈,如果是右边的括号,先看下栈是不是空,如果是空,就是非法的,如果不是空,要看下能不能匹配,如果能匹配,就把栈顶元素弹出,如果不能匹配,就非法
class Solution(object):
def isValid(self, s):
stack = []
dic = {')':'(',']':'[','}':'{'}
arr = ['(','[','{']
for c in s:
if c in arr:
stack.append(c)
elif not stack or stack.pop() != dic[c]:
return False
return len(stack) == 0