【剑指offer】之栈的压入弹出序列
2015-12-21 09:59
323 查看
题目描述:
输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。
分析:
剑指offer上的分析
java代码实现:
题目描述:
输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。
分析:
剑指offer上的分析
java代码实现:
private static boolean isPopOrder(int[]push, int[]pop) { if(push.length<0 || pop.length<0) return false; int length = pop.length ; int pushIndex = 0; int popIndex = 0; Stack stack = new Stack(); while(popIndex<length) { while(stack.isEmpty() || (Integer)stack.peek()!=pop[popIndex]) { if(pushIndex == length) { break; } stack.push(push[pushIndex]); pushIndex++; } if((Integer)stack.peek()!=pop[popIndex]) break; stack.pop(); popIndex++; } if(stack.isEmpty() && popIndex==length) return true; return false; }
相关文章推荐
- HTML5的新增标签和废除的标签
- HTML5标签使用的常见误区
- jsp的权限控制思路
- HTML5中Form表单使用方法
- HTML5表单信息验证工作原理
- AngularJS ng-disabled在a内无效
- HTML5的不足
- jQuery API
- 前端优化-Img与background
- 为什么学html5?
- Twaver的mono-desiner导出的json文件解析
- HTML5的发展趋势
- html5 自带表单验证怎么禁用
- HTML5表单必填项属性required="required"
- HTML5新增标签的汇总与详解
- 用户界面框架jQuery EasyUI示例大全之Panel
- mac下编译google buffer3.0
- 5个主流的HTML5开发工具
- JS的跳转
- Web前端常见问题