7-1 合法的出栈序列
分数 40
全屏浏览题目
切换布局
作者 吴敏华
单位 首都师范大学
n个自然数的入栈顺序为1,2,....n, 输入一个出栈序列,判断其是否是一个合法的出栈序列。n<10。
输入格式:
输入共二行,第一行中给出正整数n。
第二行给出n个用空格隔开的正整数,表示一个出栈序列
输出格式:
如果是一个合法的出栈序列输出yes,否则输出no。
输入样例1:
3
3 2 1
输出样例1:
yes
输入样例2:
3
3 1 2
输出样例1:
no
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
#include <iostream>
#include <stack>
int main(){
std::stack<int> s;
int n, index=0; std::cin>>n;
int popped[n];
for(int i=0; i<n; i++)
std::cin>>popped[i];
for(int i=1; i<=n; i++){
s.push(i);
while(!s.empty() && popped[index] == s.top()){
s.pop();
index++;
}
}
if(!s.empty())
std::cout<<"no";
else
std::cout<<"yes";
return 0;
}