剑指Offer 31 栈的压入、弹出序列
栈的压入、弹出序列
输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)
1 # -*- coding:utf-8 -*- 2 class Solution: 3 def IsPopOrder(self, pushV, popV): 4 n = len(pushV) 5 stack = [] 6 popout = [0] * n 7 preidx = 0 8 for i in range(len(pushV)): 9 cur = popV[i] 10 if pushV.count(cur) > 0: 11 idx = pushV.index(cur) 12 if idx >= preidx: 13 for j in range(preidx,idx): 14 if popout[j] == 1: 15 continue 16 else: 17 stack.append(pushV[j]) 18 else: 19 top = stack.pop(-1) 20 if top != cur: 21 return False 22 popout[idx] = 1 23 preidx = idx 24 else: 25 return False 26 return True 27 # write code here
转载于:https://www.cnblogs.com/asenyang/p/11013883.html
剑指Offer 31 栈的压入、弹出序列相关推荐
- 【LeetCode】剑指 Offer 31. 栈的压入、弹出序列
[LeetCode]剑指 Offer 31. 栈的压入.弹出序列 文章目录 [LeetCode]剑指 Offer 31. 栈的压入.弹出序列 package offer;import java.uti ...
- 剑指offer——31.栈的压入、弹出序列(想法不错,比剑指的简单)
题目: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈 ...
- 剑指offer 31. 栈的压入、弹出序列
声明:本系列博客是对何海涛<剑指offer>的关键点总结. 1.问题描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序. 如第一个输入序列为{1 2 ...
- 剑指 Offer 31. 栈的压入、弹出序列【无取巧,易于理解!】
看题解时,很多大牛用很少的代码就完成了AC,但可能看了很多遍也看不懂,因此萌生了写一种最"笨"最完整的代码的想法,这样大家可以通过我的代码入门,看懂了再去挑战大牛们的简洁解法. 输 ...
- 【算法】剑指 Offer 31. 栈的压入、弹出序列 【重刷】
1.概述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2 ...
- 【LeetCode笔记】剑指 Offer 31. 栈的压入、弹出序列 (Java、栈)
文章目录 题目描述 代码 && 思路 二刷 题目描述 打卡第三天!加油加油- 数据结构笔试题貌似也会考= =,不过考法不一样,有点规律. 总的来说还是挺有意思的,我们直接来看代码吧- ...
- 【剑指offer-Java版】22栈的压入弹出序列
栈的压入弹出序列:给定两个序列,一个是压入顺序,判断另外一个是否是该压入顺序的一个弹出顺序 思路:纯粹的模拟栈的压入和弹出顺序 分别遍历压栈序列seq1和另一个序列seq2 比较当前栈顶元素和seq2 ...
- 剑指Offer之栈的压入、弹出序列
题目描述 输入两个整数序列,第一个序列表示栈的压入书序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相同.例如1.2.3.4.5是某栈的压入序列,序列5.4.3.2.1是该栈对应的一 ...
- 剑指offer:栈的压入、弹出序列
题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压 ...
最新文章
- 在Android中使用Handler和Thread线程执行后台操作
- java 通配符 日期_java – 使用带有通配符支持的SimpleDateFormat解析日期字符串(例如* yyyy * MM * dd * hh * mm * ss)...
- 【机器学习】关联规则代码练习
- 计算机桌面设计总结及体会,计算机基础学习心得
- [译]Go语言常用文件操作汇总
- 人人视频从 App Store 下架整改,并下线“快看”相关内容,网友:我追的剧怎么办?...
- Windows 会有开源的一天吗?
- java图片像素90翻转_java后台解决上传图片翻转90的问题,有demo,经过测试可用...
- mac无法验证您网络上的打印机,怎么解决?
- php后缀名隐藏,php怎样隐藏后缀名
- 【JavaWeb】石家庄地铁搭乘系统——第二版
- 新加坡国际学校IB课程体系
- cas5.3.2单点登录-配置记住我(十六)
- OD使用经验【转载】
- 一墙之隔-看向世界和直面速度与激情
- 百度统计的JS脚本原理分析 2013年文章转载
- 一张图慢慢转换成下一张图_给一张照片做一个视频 如何把一张图片制作成几分钟的视频|图片做成视频软件...
- 小新pro13睡眠后无法唤醒_小新air12、air13、air13pro睡眠后无法唤醒的调试方法
- python读取pdf内容转word_【python】python实现PDF转word
- JavaScript利用回调函数完成次序循环打印“红黄绿”灯