栈的压入、弹出序列
2015-09-06 14:19
232 查看
题目描述
输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。思路:
1、栈空时,压入一个;
2、弹出序列第一个元素与栈顶元素比较,相同,则弹出一个,不相同再压入一个;
3、弹出序列过完没有false,则true;入栈序列全部压入完,弹出序列第一个元素与栈顶元素还是不同,返回false;
代码:
bool IsPopOrder(vector<int> pushV,vector<int> popV) { int len_push = pushV.size(); int len_pop = popV.size(); if(len_push != len_pop) return false; if(len_pop == 0) return false; int a_push = 0,a_pop = 0; stack<int> A; //A.clean(); while(a_pop < len_pop){ if(A.empty() && a_push < len_push){ A.push(pushV[a_push]); a_push++; } if(popV[a_pop] == A.top()){ A.pop(); a_pop++; } else{ if(a_push < len_push){ A.push(pushV[a_push]); a_push++; } else return false; } } return true; }
相关文章推荐
- 一个游戏数值策划的自白:我所理解的数值工作
- tomcat记录控制台输出信息至文件
- (android高仿系列)今日头条 --新闻阅读器 (三) 完结 、总结 篇
- 通过NSString初始化OC类
- php数组与字符串的转换
- Bestcoder#54 A problem of sorting
- 性能安全之新安装的MySQL必须调整的10项配置
- 静态链表实现
- 浙江大学PAT_甲级_1052. Linked List Sorting (25)
- php xss filter
- Action Recognition with Trajectory-Pooled Deep-Convolutional Descriptors
- 你想学好rails+vim+ruby+titanium等等成为全栈工程师牛人么?这里是牛人博客网站地址
- Hdu5429,数学+高精度+等比序列判断
- 1067. Sort with Swap(0,*) (25)
- mysql导入与导出sql文件指令
- 如何在Linux上运行Mono
- xeno 实时性能测试 在100us的采样周期的测试数据
- ER 图
- Map线程安全
- cmd命令行大全 dos命令 cmd命令整理