剑指offer——30栈的压入、弹出序列
2024-09-06 07:17:45
题目描述
输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列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;
}
};
最新文章
- 【单页应用巨坑之History】细数History带给单页应用的噩梦
- AR , VR, GVR ...
- CUTE FTP 控制连接已关闭
- MVC系列之二 Model层细解
- c# 获取数组中最大数的值
- CentOS忘记root密码的解决方法
- ios6,ios7,ios7.1下设置UISearchbar的背景色
- python 访问器@property的使用方法
- The Event System
- jQuery常用的查找Dom元素方法
- FusionCharts封装-单系列图组合
- BZOJ_3239_Discrete Logging_BSGS
- 末学者笔记--NFS服务和DHCP服务讲解
- 基于.NET框架的消息通信组件ZMQ资料汇编-总目录
- 2019西北工业大学程序设计创新实践基地春季选拔赛 I Chino with Rewrite (并查集+树链剖分+线段树)
- java基础---->;String中replace和replaceAll方法
- [转载]Linux 16进制查看命令、工具
- Vue项目兼容IE浏览器
- mvc4+entityFramework5 发布时遇到的纠结问题
- GGTalk即时通讯系统(支持广域网)终于有移动端了!(技术原理、实现、源码)
热门文章
- Educational Codeforces Round 64 (Rated for Div. 2) (线段树二分)
- 【Shiro】一、Apache Shiro简介
- node 创建静态web服务器(上)
- Java并发主要操作
- Day 20: 面向对象【多态,封装,反射】字符串模块导入/内置attr /包装 /授权
- 3-vim-打开和新建文件-02-删除交换文件
- 32-Ubuntu-用户权限-03-修改文件权限
- 最长递增子序列nlogn的做法
- Java 获取当前系统的操作系统类型
- win查看所有wifi密码