第二十九天 Valid Parentheses

这也是一道非常经典的题目了

利用栈的特性

但写起来也还真不是那么简单,知道怎么做,和做出来,还是有差距的

思路就是,如果是左边的括号就入栈,如果是右边的括号,先看下栈是不是空,如果是空,就是非法的,如果不是空,要看下能不能匹配,如果能匹配,就把栈顶元素弹出,如果不能匹配,就非法

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

你可能感兴趣的:(第二十九天 Valid Parentheses)