AC代码,Python语言描述
思路:
- 用一个栈来存放符号,遍历一次字符串s,当字符i为'( '、' { '、' [ '的时候入栈,当字符i为')'、' } '、' ] '出栈,出栈元素记为j
- 当出栈元素j与字符i不属于同一对括号时return False,结束程序
- 当出栈时超过栈索引return False,结束程序
- 最后检查栈是否为空,为空return True,结束程序。否则return False,结束程序
class Solution(object):
def isValid(self, s):
"""
:type s: str
:rtype: bool
"""
bracket = []
for i in s:
if i == '(' or i == '{' or i == '[':
bracket.append(i)
else:
try:
j = bracket.pop()
if (i == ')' and j != '(') or (i == '}' and j != '{') or (i == ']' and j != '['):
return False
except IndexError:
return False
if len(bracket) == 0:
return True
else:
return False