剑指Offer:面试题22——栈的压入,弹出序列(java实现)
来源:互联网 发布:centos 7web服务器 编辑:程序博客网 时间:2024/06/08 10:13
题目描述:
输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。
思路:
遍历待测试序列,如果当前元素在栈顶,出栈即可,否则,查看是否所有待入栈元素已入栈,如是说明当前元素在栈里面但又不在栈顶,显然出栈顺序错误,若没入栈,则按顺序从待入栈集合中入栈直到栈顶元素是当前元素,出栈…
代码:
public boolean IsPopOrder(int [] pushA,int [] popA) { if(pushA == null || popA == null){ return false; } int m = pushA.length; int n = popA.length; if(m == 0 || n == 0){ return false; } Stack<Integer> s = new Stack<Integer>(); int start = 0; for(int i = 0; i < n; i++){ while(s.empty() || s.peek() != popA[i]){ if(start >= m){ return false; } s.push(pushA[start++]); } if(s.peek() != popA[i]){ return false; } s.pop(); } return true; }
0 0
- 剑指Offer:面试题22——栈的压入,弹出序列(java实现)
- 剑指offer--面试题22:栈的压入、弹出序列--Java实现
- 剑指offer代码解析——面试题22栈的压入、弹出序列
- 剑指offer——面试题22:栈的压入和弹出序列
- 剑指Offer——面试题22:栈的压入、弹出序列
- 剑指offer——面试题22:栈的压入、弹出序列
- 剑指Offer面试题22(Java版):栈的压入、弹出序列
- 栈的压入、弹出序列(剑指offer面试题)
- 剑指offer面试题 栈的压入、弹出序列
- 【剑指offer】4.3举例让抽象问题具体化——面试题22:栈的压入、弹出序列
- 面试题22—栈的压入、弹出序列
- 剑指offer面试题 22 栈的压入、弹出序列的匹配
- 剑指offer面试题22栈的压入弹出序列
- 【剑指offer】面试题22:栈的压入弹出序列
- [剑指offer]面试题22:栈的压入、弹出序列
- 剑指Offer:面试题22 栈的压入、弹出序列
- 剑指offer 面试题22 栈的压入弹出序列
- 《剑指Offer》面试题22:栈的压入,弹出序列
- 为什么说完善思维方式比知识结构更重要
- objective-C 编程全解-第15章 消息发送模式 下 NSUndoManager 撤销管理器
- PHP 编程效率的 20 个要点--PHP 技术教程分享
- Python小记02 raw字符串与多行字符串
- CSS3系列一(概述、选择器、使用选择器插入内容)
- 剑指Offer:面试题22——栈的压入,弹出序列(java实现)
- 自定义只有上下边界的边框背景
- Qt QSS 美化(换肤必备)
- 右上角数字提醒 开源第三方BadgeView控件的使用
- ReverseInteger
- 简单粗暴的理解KMP
- 用tophat 将clear reads mapping 到植物基因组上
- 堡垒机应用发布软件安装手册
- ASP.NET(C#)纯代码实现GridView绑定增删改