最近刷算法题刷到了第20题-----有效的括号,这里题目的意思一目了然,我也就不多解释了,就是括号配对的,这里思路也比较简单,我的理解是,抛开其他特殊情况,不管它给你的字符串中的结构是什么,总之当它出现')',']','}'是,如果这个字符串的匹配是正确的,那么这个字符的前面一定会有'(','[','}'与之配对。这里我i就不多详细说了,还是代码表达的比较清楚。这段代码我在lettcode上面提交已经通过了。
class Solution(object):
def isValid(self, s):
s = list(s)
d = {')':'(',']':'[','}':'{'}
ab = []
asd = []
if len(s)>0 and s[0] not in d.values():
return False
for i in s:
try:
if i == '(' or i == '[' or i =='{':
asd.append(i)
elif d[i] == asd[-1]:
del asd[-1]
else:
ab.append(i)
except:
return False
if asd or ab:
return False
else:
return True