20.有效的括号

class Solution:
    def isValid(self, s: str) -> bool:
        stack = []
        lookup = {'(':')', '[':']', '{':'}'}
        for parenthese in s:
            # 如果是左括号,就加入到stack中
            if parenthese in lookup:
                stack.append(parenthese)
            # len(stack)==0:是为了防止第一个输入的字符串是 右括号
            # 例如['}']
            # lookup[stack.pop()] != parenthese:弹出stack中存储的左括号,并判断与当前的括号是否对应
            elif len(stack)==0 or lookup[stack.pop()] != parenthese:
                return False
        # 如果stack中的所有括号全部弹出,说明输入的括号都满足要求
        return len(stack) == 0 # 等同于下面的写法
        # if len(stack) == 0:
        #     return True

 

posted @ 2019-08-20 18:20  我叫郑小白  阅读(142)  评论(0编辑  收藏  举报