python如何根据入栈序列判断出栈队列是否是可能的出栈队列
时间:2019-02-19
本文章向大家介绍python如何根据入栈序列判断出栈队列是否是可能的出栈队列,主要包括python如何根据入栈序列判断出栈队列是否是可能的出栈队列使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
class MyStack:
"""先实现栈"""
def __init__(self):
self.item = []
#判断栈是否为空
def isEmpty(self):
return not self.item
#返回栈的大小(就是列表长度)
def size(self):
return len(self.item)
#返回栈顶元素(就是列表尾部的元素)
def top(self):
if self.item:
return self.item[-1]
else:
return None
#弹出栈顶元素
def pop(self):
if len(self.item)>0:
return self.item.pop()
elif len(self.item) == 0:
print("栈已经为空")
return None
#压入一个元素item到栈顶
def push(self,item):
self.item.append(item)
#判断出栈顺序的正确性
def isPopSerial(push,pop):
pushIndex = 0
popIndex = 0
if push == None or pop == None:
return False
if len(push) != len(pop):
return False
else:
s = MyStack()
s.push(push[0])
while popIndex < len(push):#能根据规则正常弹出所有数据,并且推出循环,则证明这个出栈顺序是正确的
if s.top() != pop[popIndex]:#如果栈顶元素不等于pop序列所指的元素,就把push序列下一个元素压入
try:
pushIndex += 1
s.push(push[pushIndex])
except:
break#当pushIndex大于push长度时,说明pop出栈顺序有误,退出循环
else:#如果栈顶元素等于pop序列所指的元素,那就弹出这个栈顶,pop指针往后继续监测
s.pop()
popIndex += 1
return popIndex == len(pop)#如果循环结束popIndex指针走到了最后,说明pop顺序是正确的
if __name__ == "__main__":
push = "12345"
pop = "53421"
if isPopSerial(push, pop):
print("yes")
else:
print("no")
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(2)-easyui构建前端页面框架[附源码]
- 扬言毁灭人类的索菲亚再一次挑战了人类
- SQL Server 存储过程生成insert语句
- silverlight 背景透明
- .Net 转战 Android 4.4 日常笔记(1)--工具及环境搭建
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(33)-MVC 表单验证
- 如何利用深度学习识别千万张图片?
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(32)-swfupload多文件上传[附源码]
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(31)-MVC使用RDL报表
- 43 Hot Flex and ActionScript 3.0 APIs, tips and tools for Autumn 2008
- 异步数据存储
- 谈谈基于SQL Server 的Exception Handling[中篇]
- C# AD(Active Directory)域信息同步,组织单位、用户等信息查询
- 如何仅使用TensorFlow C+来训练深度神经网络
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法