Python 栈使用攻略
栈(Stack)是一种具有“后进先出”特性的数据结构。在Python中,使用list类型可以轻易地实现栈的功能。下面详细介绍Python中如何使用栈。
初始化栈
在Python中,可以使用列表来实现栈的数据结构。
stack = []
元素入栈
使用列表的append()来将新元素入栈。
stack.append('A')
stack.append('B')
stack.append('C')
元素出栈
使用列表的pop()方法可以将最后一个元素出栈。
stack.pop()
pop()方法同时可以返回出栈元素的值。
element = stack.pop()
获取栈顶元素
使用Python的负数索引来获取栈顶元素。
top_element = stack[-1]
栈的大小
使用Python的len()函数可以获取栈的大小。
size = len(stack)
判断栈是否为空
使用Python的not
关键字来判断栈是否为空。
if not stack:
# 栈为空的处理逻辑
示例1
下面示例代码演示将字符串反转,使用栈存储每个字符,再逐步出栈展示结果。
s = "Hello World"
stack = list(s)
reversed_s = []
# 将每个字符入栈
for i in range(len(stack)):
reversed_s.append(stack.pop())
# 依次出栈,构成反转的字符串
for i in range(len(reversed_s)):
print(reversed_s.pop(), end='')
输出结果:
dlroW olleH
示例2
下面示例代码演示匹配括号是否合法,使用栈存储左括号,匹配到右括号时出栈并判断是否匹配。
def is_valid(s: str) -> bool:
stack = []
mappings = {')': '(', '}': '{', ']': '['}
for c in s:
if c in mappings:
if not stack or stack.pop() != mappings[c]:
return False
else:
stack.append(c)
return not stack
print(is_valid('()[]{}')) # True
print(is_valid('([)]')) # False
输出结果:
True
False