LeetCode(1)---检查括号出现的合法性

题目:

检查字符串中"( )","[ ]","{ }" 的合法性,即是否成对出现

eg,如出现"[()]","{[ ]}" 为合法,出现"{( })","[{( ]}"为不合法

代码如下:

class A(object):

    def isValid(self,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():
                #右括号和栈顶的元素匹配,先看栈中是否有元素,如果有就看栈顶和刚开始存进去的
                #括号,如果不能匹配,直接false
                return False
        return not stack # 判断stack 是否为空

m = A()
res = m.inValid(s='([{[]}])')
print(res)

  

 

posted @ 2019-11-12 17:24  BigZhan  阅读(470)  评论(0编辑  收藏  举报