(附加实验)判断输入序列是否是合法的栈输出序列

问题描述:

已知自然数1,2,…,N(1≤N≤10000)依次入栈(即a<b当且仅当a先于b入栈),请设计算法判断输入序列C1,C2,…,CN是否为可能的出栈序列。
 例如:N=5 时,3,4,2,1,5是一个可能的出栈序列,因为其可以按如下操作获得:
 push 1, push 2, push 3, pop, push 4, pop, pop, pop, push 5, pop
输入:可包含多个测试用例,每个测试用例的输入有两行:
  第一行是要判断序列的长度(即元素个数)N,(1≤N≤10000) 
  第二行是以N个正整数表示的出栈序列,以空格隔开;
  如果序列长度为0,则结束;
输出:
  先输出要判断的序列,然后输出判断结论,如给出的序列是可能的出栈序列,则输出"Yes!",否则输出"No!"。

例如

输入 输出
5
3 4 2 1 5
5
3 5 1 4 2
0
 3 4 2 1 5: Yes!
 3 5 1 4 2: No!

答案:

#include <iostream>
#include <stack>
#include <queue>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值