PTA天梯赛-L2-1 判定和分析出栈序列合法性
发布时间
阅读量:
阅读量
假设有一个最大容量为M的堆栈结构,并将N个数字依次推入该堆栈(按照1到N的顺序),允许以任意顺序弹出元素,则哪些数字序列是不可能生成的?举例来说,在M=5且N=7的情况下,则按照连续递增的方式压入元素(1→2→3→4→5→6→7),随后弹出操作能够生成序列{1,… ,7};然而像{3,… ,4}这样的序列则无法被生成。
输入部分将包含以下内容:
- 第一行将提供三个关键参数:M(表示堆栈的最大容量)、N(表示待入栈元素的数量)以及K(表示待检查的有效出栈序列数量)
- 接下来的K行将详细列出所有待检查的有效出栈序列
每一组参数均以空格分隔
对于每一行的出栈序列来说,在确定该序列确实可能是一个合法的出栈序列后,请在一行中输出"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
输出样例:
这道题的核心算法思路是指导我们具体实现栈的数据结构。因此,在解决这个问题时
#include<iostream>
#include<stack>
#include<queue>
using namespace std;
int main()
{ int M,N,K,i,t;
全部评论 (0)
还没有任何评论哟~
