20.有效的括号
在匹配左括号的时候,右括号先入栈,就只需要比较当前元素和栈顶相不相等就可以了,比左括号先入栈代码实现要简单的多了!
class Solution:
def isValid(self, s: str) -> bool:
stack=[]#使用栈,并且此时是右括号先入栈
for i in s:
if i =="(":
stack.append(")")
elif i =="[":
stack.append("]")
elif i=="{":
stack.append("}")
elif not stack or stack[-1]!=i:#比较是否与栈顶相等
return False
else:
stack.pop()#遍历到右括号且前面判断条件都正确
return True if not stack else False#如果stack为空,则返回True,否则返回False。
class Solution:
def isValid(self, s: str) -> bool:
stack=[]
mapping={'(':')','[':']','{':'}'}
for i in s:
if i in mapping.keys():
stack.append(mapping[i])
elif not stack or stack[-1]!=i:
return False
else:
stack.pop()
return True if not stack else False