面试题22 栈的压入、弹出序列
2016-04-04 23:46
393 查看
题目描述
输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列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.size() == 0 || popV.size() == 0){ return false; } stack<int> s; int i = 0, j = 0; while (i < pushV.size()) { if (pushV[i] == popV[j]) { i++; j++; } else { if (s.empty()) { s.push(pushV[i]); i++; } else { if (s.top() == popV[j]) { s.pop(); j++; } else { s.push(pushV[i]); i++; } } } } while (!s.empty()) { if (s.top() != popV[j]) { return false; } else { s.pop(); j++; } } return true; } };
相关文章推荐
- 面试题21 包含min函数的栈
- 2017滴滴出行实习面试总结(测试岗,拿到offer)
- 面试题20 顺时针打印矩阵
- 2017爱奇艺实习面试总结(搜索开发,拿到offer)
- 程序员学习视频教程汇总
- LeetCode之旅(20)-Power of Three
- 码农小汪-Hibernate学习10-hibernate继承映射 @DiscriminatorColumn DiscriminatorType @Inheritance InheritanceType
- 面试题19 二叉树的镜像
- 安卓面试题
- 面试题18 树的子结构
- 程序员有趣的面试智力题
- 黑马程序员-学习笔记03
- 黑马程序员-学习笔记02
- 黑马程序员,学习笔记01
- 成为顶尖自由职业者必备的7个软技能之一:沟通(转)
- java多线程--几个多线程面试题小结
- 我的求职之路:9个offer,12家公司,35场面试,最终谷歌
- [置顶] 整理最全的Android开发工程师面试题,面试题详解。java、Android程序员
- 剑指offer面试题之和为S的连续正数序列
- 面试题15 链表中倒数第k个结点