面试题 31 : 栈的压入、弹出序列
输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。
例如序列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 : 栈的压入、弹出序列相关推荐
- 【剑指offer-Java版】22栈的压入弹出序列
栈的压入弹出序列:给定两个序列,一个是压入顺序,判断另外一个是否是该压入顺序的一个弹出顺序 思路:纯粹的模拟栈的压入和弹出顺序 分别遍历压栈序列seq1和另一个序列seq2 比较当前栈顶元素和seq2 ...
- 数据结构与算法--举例分析法- 栈的压入弹出序列
举例分析 与上两篇问中画图方法一样,我们可以用举例模拟的方法思考分析复杂问题.当一眼不能看出问题的规律的时候,我们可以用几个具体的例子来模拟一下问题的过程.这样就和我们在程序出现问题时候的debug一 ...
- 剑指offer-21.栈的压入弹出序列
1.题目 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压 ...
- python 栈的压入弹出序列
| 栈的压入和弹出序列 输入两个整数序列,第一个序列表示栈的压入顺序, 请判断第二个序列是否为该栈的弹出顺序. 假设压入栈的所有数字均不相等. 例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序 ...
- 剑指offer:面试题31. 栈的压入、弹出序列
题目:栈的压入.弹出序列 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 ...
- 剑指offer面试题31. 栈的压入、弹出序列(链表)
题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2 ...
- 剑指offer 31.栈的、压入弹出序列
输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是 ...
- 【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 ...
最新文章
- C语言不用strcmp函数比较字符串大小
- JavaScript中的递归
- 文本文件与二进制文件,C++流(待续)
- 长沙网络推广浅析如何增加网站的蜘蛛爬取频次?
- mysql怎么让一个存储过程定时执行
- Error: org.apache.hadoop.hdfs.BlockMissingException: Could not obtain block: BP-965200530-172.21.
- 一个智能运维算法测试方法
- Android-标题状态栏的隐藏
- 创建高质量Python工程(1)-如何设计结构清晰的目录结构(转)
- lammps不规则界面建模技巧
- Irc 客户端 Android,Revolution IRC | F-Droid - Free and Open Source Android App Repository
- 118、交换机配置规范
- Mac电脑C盘空间不足怎么办?
- Pegasus读取传感器AD的值
- Spring源码系列(十二)Spring创建Bean的过程(二)
- 团队里不能留的三种人
- OAI搭建——硬件准备
- 精彩WAP之旅--上海热线WAP站
- [DP/二进制] 数字组合 HUSTOJ2843
- SFR 原理分析 代码
热门文章
- Excel 二次开发系列(3): 创建Excel二次开发环境
- 校招刷题---java选择题笔记03
- Linux操作Oracle(7)—连接Oracle12C 或 OracleRac 出现 ORA-28040: No matching authentication protocol,没有匹配的验证协议
- vue页面按钮点击后,呈现loading加载状态
- 深入了解帆软报表系统的启动过程一
- 原来flash player对图片的解码不是异步的,AIR2.6后就异步了
- ubtunu打开firefox_在Ubuntu中安装Mozilla Firefox的4种方法
- lua mysql发包_如何发包
- 多进程参数args元组方式与kwargs字典方式
- 使用多线程与不使用多线程访问同一个网址实例对比