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)

  

原文地址:https://www.cnblogs.com/bigzhan/p/11843498.html