您的位置:首页 > 产品设计 > UI/UE

STL_A1051 Pop Sequence (25 分)

2020-02-17 00:01 369 查看

https://pintia.cn/problem-sets/994805342720868352/problems/994805427332562944

/*
*stack的使用,先进后出
*预先清空栈
*注意栈容量
*/
#include<iostream>
using namespace std;
#include<cstdio>
#include<stack>
stack<int> Stack;
const int MAXN=1010;
int arr[MAXN];

int main() {
int capacity,length,check;
scanf("%d%d%d",&capacity,&length,&check);
while(check--) {
while(!Stack.empty()) { //预先清空栈
Stack.pop();
}
for(int i=1;i<=length;i++) {
scanf("%d",&arr[i]); //注意循环输入格式&arr[i]
}
int now=1;
bool flag=true;
for(int i=1;i<=length;i++) {
Stack.push(i);
if(Stack.size()>capacity) {
flag=false;
break;
}
//栈顶元素与出栈序列当前位置的元素相同时
while(!Stack.empty()&&Stack.top()==arr[now]) {
Stack.pop();
now++;
}
}
if(Stack.empty()==true&&flag==true) {
printf("YES\n");
}else {
printf("NO\n");
}
}
return 0;
}

转载于:https://www.cnblogs.com/2o2o/p/11370679.html

  • 点赞
  • 收藏
  • 分享
  • 文章举报
axgk25734 发布了0 篇原创文章 · 获赞 0 · 访问量 28 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: