输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。

例如序列1,2,3,4,5是某 栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。

(注意:这两个序列的长度 是相等的)

class Solution12 {public boolean IsPopOrder(int [] pushA,int [] popA) {boolean bool = false;Stack<Integer> stack=new Stack<Integer>();int pushIndex=0,popIndex=0;if(pushA!=null || popA!=null) {while(pushIndex < pushA.length){stack.push(pushA[pushIndex]);while(stack.peek()==popA[popIndex]){stack.pop();popIndex++;if(popIndex==popA.length){break;}}pushIndex++;}}//按照上面的逻辑,所有入栈的都能出栈,说明popA是pushA的弹出序列if(stack.size()==0 && pushIndex==pushA.length){bool=true;}    return bool;}
}

转载于:https://www.cnblogs.com/Allen-win/p/8745620.html

面试题 31 : 栈的压入、弹出序列相关推荐

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

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

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

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

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

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

  4. python 栈的压入弹出序列

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

  5. 剑指offer:面试题31. 栈的压入、弹出序列

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

  6. 剑指offer面试题31. 栈的压入、弹出序列(链表)

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

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

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

  8. 【LeetCode】剑指 Offer 31. 栈的压入、弹出序列

    [LeetCode]剑指 Offer 31. 栈的压入.弹出序列 文章目录 [LeetCode]剑指 Offer 31. 栈的压入.弹出序列 package offer;import java.uti ...

  9. 剑指Offer 31 栈的压入、弹出序列

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

最新文章

  1. C语言不用strcmp函数比较字符串大小
  2. JavaScript中的递归
  3. 文本文件与二进制文件,C++流(待续)
  4. 长沙网络推广浅析如何增加网站的蜘蛛爬取频次?
  5. mysql怎么让一个存储过程定时执行
  6. Error: org.apache.hadoop.hdfs.BlockMissingException: Could not obtain block: BP-965200530-172.21.
  7. 一个智能运维算法测试方法
  8. Android-标题状态栏的隐藏
  9. 创建高质量Python工程(1)-如何设计结构清晰的目录结构(转)
  10. lammps不规则界面建模技巧
  11. Irc 客户端 Android,Revolution IRC | F-Droid - Free and Open Source Android App Repository
  12. 118、交换机配置规范
  13. Mac电脑C盘空间不足怎么办?
  14. Pegasus读取传感器AD的值
  15. Spring源码系列(十二)Spring创建Bean的过程(二)
  16. 团队里不能留的三种人
  17. OAI搭建——硬件准备
  18. 精彩WAP之旅--上海热线WAP站
  19. [DP/二进制] 数字组合 HUSTOJ2843
  20. SFR 原理分析 代码

热门文章

  1. Excel 二次开发系列(3): 创建Excel二次开发环境
  2. 校招刷题---java选择题笔记03
  3. Linux操作Oracle(7)—连接Oracle12C 或 OracleRac 出现 ORA-28040: No matching authentication protocol,没有匹配的验证协议
  4. vue页面按钮点击后,呈现loading加载状态
  5. 深入了解帆软报表系统的启动过程一
  6. 原来flash player对图片的解码不是异步的,AIR2.6后就异步了
  7. ubtunu打开firefox_在Ubuntu中安装Mozilla Firefox的4种方法
  8. lua mysql发包_如何发包
  9. 多进程参数args元组方式与kwargs字典方式
  10. 使用多线程与不使用多线程访问同一个网址实例对比