判断括号合法性,用个栈就行了
Python里List 的pop,remove,del用法:
a.pop()直接pop最后一个,x=a.pop(3)是pop下标为3的数,同时返回这个数x
a.remove(3)是去掉第一个值为3的node
del a[3]就是删除下标为3的数,这里也可以删除一个区间a[1,3]
class Solution(object):
def isValid(self, s):
"""
:type s: str
:rtype: bool
"""
Len=len(s)
a=0
b=0
c=0
stack=[]
cnt=0
if Len<=1:return False
for i in range(Len):
if s[i]==']':
if cnt>0 and stack[cnt-1]=='[':
#stack.pop()
del stack[cnt-1]
cnt-=1
else: return False
elif s[i]=='}':
if cnt>0 and stack[cnt-1]=='{':
stack.pop()
cnt-=1
else: return False
elif s[i]==')':
if cnt>0 and stack[cnt-1]=='(':
stack.pop()
cnt-=1
else: return False
elif s[i]=='[' or s[i]=='{' or s[i]=='(':
stack.append(s[i])
cnt+=1
if cnt!=0 : return False
return True