题目:
检查字符串中"( )","[ ]","{ }" 的合法性,即是否成对出现
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)