# @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("[(])"))

最新文章

  1. Queue 的用法
  2. 3.2 ARM指令分类学习
  3. 将text 文件转为List
  4. 20145208 《Java程序设计》第9周学习总结
  5. yii2细节设置
  6. iOS - Swift SQLite 数据库存储
  7. poj 2661 Factstone Benchmark (Stirling数)
  8. bzoj3064 CPU监控
  9. Java [Leetcode 278]First Bad Version
  10. 【HDOJ】4370 0 or 1
  11. [LOJ 1027] Dangerous Maze
  12. Ubuntu下Hadoop快速安装手册
  13. [HeadFirst-JSPServlet学习笔记][第三章:实战MVC]
  14. OMR数据查询
  15. 解决VIM编辑器中文乱码
  16. 谷歌是如何做代码审查的 | 外刊IT评论 - Google Chrome
  17. linux使用yum安装mariadb
  18. C语言几个输入函数的区别(史上最详细)
  19. Linux下安装redis的详细过程(redis版本为4.0.10)
  20. js伪数组转数组

热门文章

  1. ScaleYViewPager
  2. Python基础——数据类型、流程控制、常用函数
  3. mt7620 wifi driver
  4. Android — 长按ListView 利用上下文菜单(ActionMode) 进行批量事件处理
  5. Xamarin.Android 记事本(二)自定义AlertDialog
  6. java sleep和wait的区别和联系
  7. HDU4292 Food —— 最大流 + 拆点
  8. 关于eclipse的resource文件没有发布到tomcat上的解决方案
  9. jsorder 第三方修改版 修正bug 增加总价
  10. 如何反编译silverlight