java出栈序列合法性_pat--7-11 出栈序列的合法性(25 分)
给定一个最大容量为 M 的堆栈,将 N 个数字按 1, 2, 3, ..., N 的顺序入栈,允许按任何顺序出栈,则哪些数字序列是不可能得到的?例如给定 M=5、N=7,则我们有可能得到{ 1, 2, 3, 4, 5, 6, 7 },但不可能得到{ 3, 2, 1, 7, 5, 6, 4 }。
输入格式:
输入第一行给出 3 个不超过 1000 的正整数:M(堆栈最大容量)、N(入栈元素个数)、K(待检查的出栈序列个数)。最后 K 行,每行给出 N 个数字的出栈序列。所有同行数字以空格间隔。
输出格式:
对每一行出栈序列,如果其的确是有可能得到的合法序列,就在一行中输出YES,否则输出NO。
输入样例:
5 7 5
1 2 3 4 5 6 7
3 2 1 7 5 6 4
7 6 5 4 3 2 1
5 6 4 3 7 2 1
1 7 6 5 4 3 2
输出样例:
YES
NO
NO
YES
NO
#include
using namespace std;
const int N=1e3+;
stack s;
int t1;
int b[N]; int t2;
int m,n,k;
int main ()
{
cin>>m>>n>>k;
while (k--) {
while (!s.empty()) s.pop();
t2=t1=;
for (int i=;i<=n;i++)
cin>>b[i];
int flag=;
while () {
if (t1==b[t2]) {
t1++;
t2++;
}
else if (!s.empty()&&s.top()==b[t2]) {
s.pop();
t2++;
}
else {
if (t1>n) break;// 不能出栈,也不能入栈就跳出
s.push (t1);t1++;
if (s.size()>=m) {
flag=;
break;
}
}
}
if (!flag||!s.empty()) cout<
else cout<
}
return ;
}
java出栈序列合法性_pat--7-11 出栈序列的合法性(25 分)相关推荐
- 剑指Offer(Java实现)栈的压入、弹出序列
题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列 1,2,3,4,5 是某栈的压入顺序,序列 4,5,3,2,1 ...
- java输出栈的弹出序列_剑指offer:栈的压入、弹出序列(Java)
1.题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是 ...
- [剑指offer][JAVA]面试题第[31]题[栈的压入、弹出序列][栈]
[问题描述][中等] 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4 ...
- 剑指Offer面试题22(Java版):栈的压入、弹出序列
题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序. 假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压栈序列,序列,4,5,3,2,1是该压栈序 ...
- 【剑指offer】面试题31:栈的压入、弹出序列(Java)
输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是 ...
- 栈的压入、弹出序列(Java)
题目: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1. 2. 3. 4. 5是某栈的压栈序列,序列4. 5. 3. 2 ...
- 【LeetCode笔记】剑指 Offer 31. 栈的压入、弹出序列 (Java、栈)
文章目录 题目描述 代码 && 思路 二刷 题目描述 打卡第三天!加油加油- 数据结构笔试题貌似也会考= =,不过考法不一样,有点规律. 总的来说还是挺有意思的,我们直接来看代码吧- ...
- 剑指Offer之栈的压入、弹出序列
题目描述 输入两个整数序列,第一个序列表示栈的压入书序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相同.例如1.2.3.4.5是某栈的压入序列,序列5.4.3.2.1是该栈对应的一 ...
- 举例让抽象问题具体化:栈的压入、弹出序列
输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一 ...
- 牛客网 栈的压入、弹出序列
链接:https://www.nowcoder.com/questionTerminal/d77d11405cc7470d82554cb392585106 来源:牛客网 [编程题]栈的压入.弹出序列 ...
最新文章
- Python设计模式-桥接模式
- GO语言教程3:杂类
- 客户流失预警模型-GBDT模型
- Git安装以及操作过程
- 青海西宁市大通县非洲猪瘟疫区解除封锁
- cxxtest单元测试框架源码分析(二):所有对外功能实现分析
- dubbo与springmvc的简单使用
- 下列有关计算机系统叙述正确,()下列有关计算机系统软件的叙述正确的是____
- ctrl z推出查看文本怎么结束_最实用的10个电脑常用快捷键!Ctrl+Z的鬼才反向了解一下!...
- java.util.concurrent.atomic.AtomicBoolean 源码
- 算法:First Missing Positive(求缺失的第一个正整数)
- 14万字面试题汇总整理,祝你顺利斩获大厂前端offer
- 线性代数笔记5——平面方程与矩阵
- 九款实用的在线画图工具(那些可以替代Visio的应用)
- 体脂的计算Java_简单测试体脂率的两种经验公式
- 攻克银联QPBOC L2认证的最后两个不过的案例(POS与卡片的数据交互分析)
- Python连接MySQL数据库locahost无法连接的问题
- 解决go合约fabric shim peer依赖问题
- 家用计算机ip地址为什么类型,计算机IP地址怎么分类
- Web——CSS页面背景
热门文章
- Android考察报告模板,《跨越星弧》星球地质考察报告首次公开!
- java二级 计算复杂利息_java 计算存款利息
- Java-图书管理系统(控制台程序)
- c语言 滑窗法_滑窗算法
- php 接摄像头数据_详解一个交换机能带动多少个网络监控摄像头?
- html框架设计左侧嵌套,html页面嵌套使用示例(frameset使用方法)
- python远程文件管理系统_如何在Windows上使用Python访问远程文件系统?
- Spring MVC+Stomp+Security+H2 Jetty 1
- linux快速安装mysql教程
- linux安装openssl、swoole等扩展的具体步骤