1.栈是一种先进后出的序列,
2.栈主要由栈顶,栈底,两个部分:
第一步栈的创建:
class Stack:
def __init__(self):
self.stack = []
def push(self,element):
self.stack.append(element)
def pop(self):
return self.stack.pop()
def get_top(self):
if len(self.stack)>0:
return self.stack[-1]
else:
return None
def is_empty(self):
return len(self.stack)==0
通过创建一个栈类,利用列表的特殊性质,使用其,append()和pop()函数进栈,出栈。
下面谈一下栈的基本应用场景:括号匹配问题:
将判断字符串括号是否匹配:
def bracket_match(s):
match = {'}':'{',']':'[',')':'('}
stack =Stack()
for ch in s:
if ch in {'(','[','{'}:
stack.push(ch)
else:
if stack.is_empty():
return False
elif stack.get_top() == match[ch]:
stack.pop()
else:# stack.get_top() != match[ch]
return False
if stack.is_empty():
return True
else:
return False
print(bracket_match('(){}[]'))
print(bracket_match('[{[}]'))
|