题目
分析
通过栈来做,当前字符为左括号,则入栈。当前符号为右括号并且栈顶正好是对应的左括号,则出栈。如果不是对应的左括号返回false。
最后遍历完字符串,栈不为空,返回false,否则返回true
Python代码
class Solution(object):
def isValid(self, s):
"""
:type s: str
:rtype: bool
"""
stack = []
for i in range(len(s)):
if s[i] in "({[":
stack.append(s[i])
elif len(stack)==0:
return False
elif s[i]==")" and stack[-1]=="(":
stack.pop(-1)
elif s[i]=="]" and stack[-1]=="[":
stack.pop(-1)
elif s[i]=="}" and stack[-1]=="{":
stack.pop(-1)
else:
return False
if len(stack)==0:
return True
else:
return False