https://leetcode-cn.com/problems/valid-parentheses/submissions/
问题:还不知道怎么样是提高效率,只会随便使用完成结果
class Solution(object):
def __init__(self):
self.bracket_l = ['(','[','{']
self.bracket_r = [')',']','}']
def isValid(self, s):
"""
:type s: str
:rtype: bool
"""
s_numlist=[]
#本来根据题意是不需要判断是否是空的,但学习群里的测试示例出现了空字符串
if s=="":
return True
for i in range(len(s)):
is_inl=self.index_ofl(s[i])
is_inr=self.index_ofr(s[i])
if (is_inl != None):
s_numlist.append(is_inl)
elif(is_inr != None):
if (s_numlist == [])or(is_inr != s_numlist[-1]):
return False
else:
del s_numlist[-1]
else:
return False
if s_numlist == []:
return True
else:
return False
def index_ofl(self,s):
if s in self.bracket_l:
return self.bracket_l.index(s)
else:
return None
def index_ofr(self,s):
if s in self.bracket_r:
return self.bracket_r.index(s)
else:
return None
题目完成其实很简单,如果出现了右括号,那么紧连的前一个括号必须是左括号。