python中的栈
2024-09-08 03:45:22
# @File: stack # 列表实现栈
class MyStack(object): def __init__(self):
self.data = [] def push(self, item):
self.data.append(item) def pop(self):
return self.data.pop() def top(self):
return self.data[-1] def is_empty(self):
return self.data == [] def size(self):
return len(self.data) stack = MyStack()
stack.push(9)
stack.push(9)
print(stack)
print(stack.top())
print(stack.pop())
print(stack) --------------------------------------------------------------------------------- import queue stack = queue.LifoQueue() # 可看LifoQueue的源码,就是以上原理
stack.put(1)
stack.put(2)
print(stack.get())
print(stack.queue)
print(stack.qsize())
# stack.empty() # 栈空
# stack.full() # 栈满 ---------------------------------------------------------------------------------
# 例子(括号匹配)
def bracket_match(s):
stack = []
d = {"}": "{", ']': '[', ')': ')'}
for ch in s:
if ch in {'{', '[', '('}:
stack.append(ch)
elif len(stack) == 0:
print('缺少左括号')
elif d[ch] == stack[-1]:
stack.pop()
else:
print('左右括号不匹配')
return False
if len(stack) > 0:
print('缺少右括号')
return False
else:
return True # print(bracket_match("[(])"))
最新文章
- Queue 的用法
- 3.2 ARM指令分类学习
- 将text 文件转为List
- 20145208 《Java程序设计》第9周学习总结
- yii2细节设置
- iOS - Swift SQLite 数据库存储
- poj 2661 Factstone Benchmark (Stirling数)
- bzoj3064 CPU监控
- Java [Leetcode 278]First Bad Version
- 【HDOJ】4370 0 or 1
- [LOJ 1027] Dangerous Maze
- Ubuntu下Hadoop快速安装手册
- [HeadFirst-JSPServlet学习笔记][第三章:实战MVC]
- OMR数据查询
- 解决VIM编辑器中文乱码
- 谷歌是如何做代码审查的 | 外刊IT评论 - Google Chrome
- linux使用yum安装mariadb
- C语言几个输入函数的区别(史上最详细)
- Linux下安装redis的详细过程(redis版本为4.0.10)
- js伪数组转数组