剑指offer|栈的压入、弹出序列
来源:互联网 发布:intel 超频软件 编辑:程序博客网 时间:2024/05/29 10:06
题目描述
输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列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) { if(pushV.empty() || popV.empty() || pushV.size() != popV.size()) return false; stack<int> st; int j=0; for(int i=0;i<pushV.size();++i) { st.push(pushV[i]); while(j<popV.size() && st.top() == popV[j]) { st.pop(); ++j; } } if(st.empty()) return true; else return false; }};
0 0
- offer,栈的压入、弹出序列
- 【剑指offer】栈的压入弹出序列
- 剑指offer系列源码-栈的压入、弹出序列
- 剑指offer--栈的压入、弹出序列
- 剑指Offer之 - 栈的压入、弹出序列
- 剑指offer:栈的压入、弹出序列
- 《剑指offer》栈的压入、弹出序列
- 剑指Offer系列---(24)栈的压入、弹出序列
- 栈的压入、弹出序列(剑指offer)
- 剑指 offer:栈的压入、弹出序列
- 【剑指Offer】栈的压入、弹出序列
- 剑指offer—栈的压入、弹出序列
- 剑指offer:栈的压入弹出序列
- 剑指Offer-22-栈的压入、弹出序列
- 《剑指offer》——栈的压入、弹出序列
- 剑指offer:栈的压入、弹出序列
- 【剑指offer】之栈的压入弹出序列
- 剑指Offer:栈的压入、弹出序列(JAVA)
- i2c调试记录
- Java实验(14) MyRational
- collections.sort(list, comparator) 详解
- Android一个工程引用另一个工程
- 操作系统面试—死锁(三)——死锁检测和死锁恢复
- 剑指offer|栈的压入、弹出序列
- Composer中国镜像
- CentOS7 快速搭建Nodejs开发环境
- Android中ListView与CheckBox结合----多选与记录
- 错误处理、环境表、内存管理
- oracle 平时记录
- android网络异步应用开发模式之——Android 异步加载解决方案
- Java实验(15)扑克牌
- [linux]vim配置