题目:
给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
解答:
方法一:
class Solution:
def isValid(self, s: str) -> bool:
stack=[]
for c in s:
if c=='(':
stack.append(')')
elif c=='{':
stack.append('}')
elif c=='[':
stack.append(']')
elif stack and stack[-1]==c:
stack.pop()
else:
return False
return True if not stack else False
方法二:使用字典囊括所有情况
class Solution:
def isValid(self, s: str) -> bool:
dic={}
dic['(']=')'
dic['{']='}'
dic['[']=']'
stack=[]
for c in s:
if c in dic:
stack.append(dic[c])
elif stack and stack[-1]==c:
stack.pop()
else:
return False
return True if not stack else False