问题描述
给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。
括号必须以正确的顺序关闭,"()" 和 "()[]{}" 是有效的但是 "(]" 和 "([)]" 不是。
解答方法
这是一个堆栈问题,主要注意先入后出,最后堆栈为空。
class Solution:
def isValid(self, s):
"""
:type s: str
:rtype: bool
"""
x=['(','[','{']
y=[')',']','}']
z=['()','{}','[]']
stack = []
for char in s :
if char in x:
stack.append(char)
elif char in y:
if len(stack)==0 :
return False
elif stack[-1]+char in z:
stack.pop(-1)
else:
return False
if stack==[]:
return True
else:
return False