题目描述

输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列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() != popV.size())return false;
stack<int>s;
int p1 = , p2 = ;
while (p2<popV.size())
{
if (p1 < pushV.size() && s.empty())
s.push(pushV[p1++]);
if (!s.empty() && s.top() == popV[p2])
{
s.pop();
p2++;
}
else if (p1 < pushV.size())
s.push(pushV[p1++]);
else
return false;
}
return true;
}
};

最新文章

  1. 【单页应用巨坑之History】细数History带给单页应用的噩梦
  2. AR , VR, GVR ...
  3. CUTE FTP 控制连接已关闭
  4. MVC系列之二 Model层细解
  5. c# 获取数组中最大数的值
  6. CentOS忘记root密码的解决方法
  7. ios6,ios7,ios7.1下设置UISearchbar的背景色
  8. python 访问器@property的使用方法
  9. The Event System
  10. jQuery常用的查找Dom元素方法
  11. FusionCharts封装-单系列图组合
  12. BZOJ_3239_Discrete Logging_BSGS
  13. 末学者笔记--NFS服务和DHCP服务讲解
  14. 基于.NET框架的消息通信组件ZMQ资料汇编-总目录
  15. 2019西北工业大学程序设计创新实践基地春季选拔赛 I Chino with Rewrite (并查集+树链剖分+线段树)
  16. java基础----&gt;String中replace和replaceAll方法
  17. [转载]Linux 16进制查看命令、工具
  18. Vue项目兼容IE浏览器
  19. mvc4+entityFramework5 发布时遇到的纠结问题
  20. GGTalk即时通讯系统(支持广域网)终于有移动端了!(技术原理、实现、源码)

热门文章

  1. Educational Codeforces Round 64 (Rated for Div. 2) (线段树二分)
  2. 【Shiro】一、Apache Shiro简介
  3. node 创建静态web服务器(上)
  4. Java并发主要操作
  5. Day 20: 面向对象【多态,封装,反射】字符串模块导入/内置attr /包装 /授权
  6. 3-vim-打开和新建文件-02-删除交换文件
  7. 32-Ubuntu-用户权限-03-修改文件权限
  8. 最长递增子序列nlogn的做法
  9. Java 获取当前系统的操作系统类型
  10. win查看所有wifi密码