题目描述
输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)

class Solution:def IsPopOrder(self, pushV, popV):if not pushV or not popV or len(pushV) != len(popV):return Falsestack = []for pop in popV:# 对弹出序列中的每个元素,如果不在栈顶,那么就从入栈序列中逐个入栈直到栈顶元素为# 待弹出的元素。# 如果入栈序列为空仍未在栈顶找到待弹出序列,说明这个弹出序列和入栈序列不可能匹配if not stack or stack[-1] != pop:while pushV:stack.append(pushV[0])if pushV.pop(0) == pop:breakif stack and stack[-1] == pop:stack.pop(-1)else:return Falsereturn True

转载于:https://blog.51cto.com/jayce1111/2398247

剑指offer:栈的压入、弹出序列相关推荐

  1. 剑指offer-21.栈的压入弹出序列

    1.题目 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压 ...

  2. 【剑指offer-Java版】22栈的压入弹出序列

    栈的压入弹出序列:给定两个序列,一个是压入顺序,判断另外一个是否是该压入顺序的一个弹出顺序 思路:纯粹的模拟栈的压入和弹出顺序 分别遍历压栈序列seq1和另一个序列seq2 比较当前栈顶元素和seq2 ...

  3. 剑指offer 栈的压入、弹出序列

    题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序 ...

  4. 数据结构与算法--举例分析法- 栈的压入弹出序列

    举例分析 与上两篇问中画图方法一样,我们可以用举例模拟的方法思考分析复杂问题.当一眼不能看出问题的规律的时候,我们可以用几个具体的例子来模拟一下问题的过程.这样就和我们在程序出现问题时候的debug一 ...

  5. python 栈的压入弹出序列

    | 栈的压入和弹出序列 输入两个整数序列,第一个序列表示栈的压入顺序, 请判断第二个序列是否为该栈的弹出顺序. 假设压入栈的所有数字均不相等. 例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序 ...

  6. 剑指offer 31.栈的、压入弹出序列

    输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是 ...

  7. 2021-07-22剑指offer31.栈的压入、弹出序列

    将pushed数组中的数字压入栈中 用一个指针指向popped序列中的数字 栈中的数字与指针指向的数字相同,就将栈顶的数字弹出, 指针移动到下一位数字比较, 如果不相同,指针不移动,栈顶继续放入. c ...

  8. 剑指offer——栈

    栈,初听这个词还以为是战斗的战呢. 经过学习知道了此"栈"非彼战.栈,与我们小时候玩的那个汉诺塔游戏极其相似,最先放的圆盘最后出,最后放的圆盘最先出,汉诺塔的示意图如下图所示:(此 ...

  9. 剑指Offer——栈的java实现和栈的应用举例

    栈是一种先进后出的数据结构, 栈的实现如下: 首先定义了栈需要实现的接口: public interface MyStack<T> {/*** 判断栈是否为空*/ boolean isEm ...

  10. 【LeetCode笔记】剑指 Offer 33. 二叉树的后序遍历序列(Java、递归、栈)

    文章目录 题目描述 思路 && 代码 1. 递归做法 2. 辅助栈做法 二刷 打卡第四天-昨天没来得及写博客= = 题目描述 无须多言,直接冲思路吧! 思路 && 代码 ...

最新文章

  1. 合肥工业大学—SQL Server数据库实验六:数据更新操作
  2. 变频器服务器电路板维修,变频器线路板常见维修方法
  3. js-for (var in )遍历顺序乱了
  4. 图片合成gif_谈谈有哪些好用的制作GIF的方式
  5. libfacedetection库 yufacedetectnet-open-v1.prototxt详解
  6. Redis:分布式锁setnx(只 实现了 互斥性和容错性)
  7. 基于JAVA+SpringMVC+Mybatis+MYSQL的公寓租赁系统
  8. linux软件管理(yum,rpm)
  9. 长春理工大学计算机科学与技术学分,计算机科学与技术专业本科人才培养方案-长春理工大学教务处.PDF...
  10. 浅谈软件项目中的需求分析与需求管理
  11. 电磁兼容的PCB设计(一)
  12. 计算机辅助设计课程设计评分标准,CAD考试规则评分标准.doc
  13. 数据库cosc2406-2407辅导week10-quiz-Transactions and Concurrency
  14. pyomo / Ipopt : Error evaluating constraint 1: can‘t evaluate pow‘(0,0.5).
  15. PrecompiledAssemblyException: Multiple precompiled assemblies with the same name websocket-sharp.dll
  16. 使用Navicat远程连接oracle数据库
  17. 如何将macbook触摸板和外接鼠标的滚轮设置相反方向
  18. 红旗系统是不是linux,红旗linux操作系统是Linux吗?我想学习Linux,已经按完红旗的了、不知道是不是Linux,有没有被红旗改变过。还能按正常的方式学吗?...
  19. 常用的正则表达式判断手机号邮箱等
  20. 用Java语言遍历读取和操纵XML文档

热门文章

  1. php麻将机器人ai算法,高性能麻将AI算法
  2. ds查找—二叉树平衡因子_面试官让我手写一个平衡二叉树,我当时就笑了
  3. 1977标准_超过8分,就是痛风!附痛风诊断新标准和治疗原则
  4. abb样本-感应电机与发电机手册_发电机工作原理图解
  5. mysql分表后怎么索引_分库分表后的索引问题
  6. 联想rd540服务器怎么装系统,联想RD540加显卡BIOS设置
  7. 安装mysql 1045_mysql安装出现error Nr.1045
  8. Python Study:(三)python之断言处理
  9. 【数据集】一文道尽医学图像数据集与竞赛
  10. 2022版全球及中国消防设备市场营销策略分析与竞争趋势展望报告