给定一个最大容量为 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 分)相关推荐

  1. 剑指Offer(Java实现)栈的压入、弹出序列

    题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列 1,2,3,4,5 是某栈的压入顺序,序列 4,5,3,2,1 ...

  2. java输出栈的弹出序列_剑指offer:栈的压入、弹出序列(Java)

    1.题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是 ...

  3. [剑指offer][JAVA]面试题第[31]题[栈的压入、弹出序列][栈]

    [问题描述][中等] 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4 ...

  4. 剑指Offer面试题22(Java版):栈的压入、弹出序列

    题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序. 假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压栈序列,序列,4,5,3,2,1是该压栈序 ...

  5. 【剑指offer】面试题31:栈的压入、弹出序列(Java)

    输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是 ...

  6. 栈的压入、弹出序列(Java)

    题目: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1. 2. 3. 4. 5是某栈的压栈序列,序列4. 5. 3. 2 ...

  7. 【LeetCode笔记】剑指 Offer 31. 栈的压入、弹出序列 (Java、栈)

    文章目录 题目描述 代码 && 思路 二刷 题目描述 打卡第三天!加油加油- 数据结构笔试题貌似也会考= =,不过考法不一样,有点规律. 总的来说还是挺有意思的,我们直接来看代码吧- ...

  8. 剑指Offer之栈的压入、弹出序列

    题目描述 输入两个整数序列,第一个序列表示栈的压入书序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相同.例如1.2.3.4.5是某栈的压入序列,序列5.4.3.2.1是该栈对应的一 ...

  9. 举例让抽象问题具体化:栈的压入、弹出序列

    输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一 ...

  10. 牛客网 栈的压入、弹出序列

    链接:https://www.nowcoder.com/questionTerminal/d77d11405cc7470d82554cb392585106 来源:牛客网 [编程题]栈的压入.弹出序列 ...

最新文章

  1. Python设计模式-桥接模式
  2. GO语言教程3:杂类
  3. 客户流失预警模型-GBDT模型
  4. Git安装以及操作过程
  5. 青海西宁市大通县非洲猪瘟疫区解除封锁
  6. cxxtest单元测试框架源码分析(二):所有对外功能实现分析
  7. dubbo与springmvc的简单使用
  8. 下列有关计算机系统叙述正确,()下列有关计算机系统软件的叙述正确的是____
  9. ctrl z推出查看文本怎么结束_最实用的10个电脑常用快捷键!Ctrl+Z的鬼才反向了解一下!...
  10. java.util.concurrent.atomic.AtomicBoolean 源码
  11. 算法:First Missing Positive(求缺失的第一个正整数)
  12. 14万字面试题汇总整理,祝你顺利斩获大厂前端offer
  13. 线性代数笔记5——平面方程与矩阵
  14. 九款实用的在线画图工具(那些可以替代Visio的应用)
  15. 体脂的计算Java_简单测试体脂率的两种经验公式
  16. 攻克银联QPBOC L2认证的最后两个不过的案例(POS与卡片的数据交互分析)
  17. Python连接MySQL数据库locahost无法连接的问题
  18. 解决go合约fabric shim peer依赖问题
  19. 家用计算机ip地址为什么类型,计算机IP地址怎么分类
  20. Web——CSS页面背景

热门文章

  1. Android考察报告模板,《跨越星弧》星球地质考察报告首次公开!
  2. java二级 计算复杂利息_java 计算存款利息
  3. Java-图书管理系统(控制台程序)
  4. c语言 滑窗法_滑窗算法
  5. php 接摄像头数据_详解一个交换机能带动多少个网络监控摄像头?
  6. html框架设计左侧嵌套,html页面嵌套使用示例(frameset使用方法)
  7. python远程文件管理系统_如何在Windows上使用Python访问远程文件系统?
  8. Spring MVC+Stomp+Security+H2 Jetty 1
  9. linux快速安装mysql教程
  10. linux安装openssl、swoole等扩展的具体步骤