剑指offer:栈的压入、弹出序列
2016-04-24 14:48
387 查看
输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。
class Solution { public: bool IsPopOrder(vector<int> pushV,vector<int> popV) { int pushLen=pushV.size(); int popLen=popV.size(); if(pushLen!=popLen){ return false; } if(pushLen==0 && popLen==0){ return false; } stack<int> stk; int flag=true; int i=0; int j=0; while(i<popV.size()){ int cur=popV[i]; while(stk.empty() || stk.top()!=cur){ stk.push(pushV[j]); j++; if(j>pushLen){ flag=false; break; } } if(!flag){ break; } if(stk.top()==cur){ stk.pop(); } i++; } return flag; } };
相关文章推荐
- JSP页面数据传到另外一个JSP页面
- 【css基础】div父元素根据子元素高度自适应高度
- 【css基础】div父元素根据子元素高度自适应高度
- 剑指offer--从尾到头打印链表
- 菜鸟学习nodejs--包(npm)管理
- html
- Yeoman(Yo、Grunt、Bower),node.js学习笔记
- js动态删除表格,动态删第几行到第几行
- Yeoman(Yo、Grunt、Bower),node.js学习笔记
- 不只是Canvas和拖放——HTML5新特性一览
- 在html页面中嵌入SVG的几种方式
- 前端应用记录日志的重要性
- JavaScript函数的中实参个数和形参个数的获取
- 【JS 设计模式 】用组合模式来实现树形导航--代码结构思路分析(一)
- 通过JS函数劫持自定义百度云分享提取码
- 动态替换css和js的方法
- 实现JS数组的深拷贝
- Notice: Only variable references should be returned by reference(PHP版本兼容性问题)
- ArcGIS server开发之API for js 本地部署
- JSP取得绝对路径