剑指offer-栈的压入弹出序列
来源:互联网 发布:cf2016刷枪软件 编辑:程序博客网 时间:2024/06/05 04:27
一、问题描述
输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)
二、 思路
1、首先判断弹出序列数组是否为空,如果为空,返回false;
2、进入循环,首先先将压入序列依次入栈并将指针加一;
3、进入第二个循环判断当前的指针是否小于弹出栈的长度和当前的栈顶元素是否和当前弹出栈顶指针对应元素值相等,如果相等则弹出,并且将弹出指针加一。
三、代码
class Solution {public: bool IsPopOrder(vector<int> pushV,vector<int> popV) { if(pushV.size() == 0) return false; vector<int> stack; int l1 = pushV.size(),l2 = popV.size() ; for(int i = 0,j = 0; i < l1;){ stack.push_back(pushV[i++]); while(j < l2 && stack.back() == popV[j]){ stack.pop_back(); ++j; } } return stack.empty(); }};
0 0
- offer,栈的压入、弹出序列
- 【剑指offer】栈的压入弹出序列
- 剑指offer系列源码-栈的压入、弹出序列
- 剑指offer--栈的压入、弹出序列
- 剑指Offer之 - 栈的压入、弹出序列
- 剑指offer:栈的压入、弹出序列
- 《剑指offer》栈的压入、弹出序列
- 剑指Offer系列---(24)栈的压入、弹出序列
- 栈的压入、弹出序列(剑指offer)
- 剑指 offer:栈的压入、弹出序列
- 【剑指Offer】栈的压入、弹出序列
- 剑指offer—栈的压入、弹出序列
- 剑指offer:栈的压入弹出序列
- 剑指Offer-22-栈的压入、弹出序列
- 《剑指offer》——栈的压入、弹出序列
- 剑指offer:栈的压入、弹出序列
- 【剑指offer】之栈的压入弹出序列
- 剑指Offer:栈的压入、弹出序列(JAVA)
- Array.prototype.map()的用法
- [linux]CentOS无法使用epel源
- 自定义注解实战案例——实现ORM映射
- solr和solrcloud
- 待更新项目(1)
- 剑指offer-栈的压入弹出序列
- Python sorted()
- Min Stack
- Mix-Editor图文编辑 v1.2
- UVa512
- Linux多线程通信
- vrrp协议
- HorizontalNumberView与seekbar共享滑动的自定义view
- Android studio 断点调试