leetcode20-Valid Parentheses有效的括号
利用栈
编程方式一:按照课本上思路改写的
class Solution:
def isValid(self, s: str) -> bool:
map={'(':')','[':']','{':'}'}
match=True
i=0
stack=[]
while i<len(s) and match:
if s[i] in "([{":
stack.append(s[i])
else:
if len(stack)==0:
match=False
else:
open=stack.pop()
if s[i]!=map[open]:#s[i] is close symbol
match=False
i=i+1
if len(stack)!=0:
match=False
return match
编程方式二:leetcode官方解答 ,更加简洁
class Solution:
def isValid(self, s: str) -> bool:
stack=[]
mapping={')':'(',']':'[','}':'{'}
for char in s:
if char in mapping:
top=stack.pop() if stack else '#' #防止stack为空时报错
if mapping[char] != top:
return False
else:
stack.append(char)
return not stack