栈stack:
1、数据入栈和出栈的时间复杂度都为O(1)
数据结构和算法(四):栈 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/37467342
2、作用:栈具有记忆作用,对栈的插入与删除操作中,不需要改变栈底指针(短暂储存数据)
3、常见:利用栈实现字符串逆序;利用栈判断分隔符是否匹配
4、栈可以通过数组实现
class Solution:
def isValid(self, s: str) -> bool:
if len(s) == 0:
return True
stack = []
for c in s:
if c=='(' or c=='[' or c == '{':
stack.append(c)
else: #如果是右括号,先看栈里有没有东西
if len(stack)==0:
return False
else:
temp = stack.pop()
if c == ')':
if temp!='(':
return False
elif c == ']':
if temp!='[':
return False
elif c=='}':
if temp!='}':
return False
return True if len(stack) == 0 else False #最后再看一下栈