L2-1 出栈序列的合法性 (25 分)——简单思路
思路
入栈顺序是:1,2,3,4,5…
给出一个出栈顺序,让你判断是否合法,我们模拟入栈出栈顺序,从1开始入栈,如果当前栈顶是当前出栈的元素,那么当前栈顶出栈,否则就一直入栈,知道栈满或者当前出栈元素入栈。
AC代码
#include<bits/stdc++.h>
#define rep(i,x,y) for(int i=x; i<=y; ++i)
#define per(i,x,y) for(int i=x; i>=y; --i)
#define pushk push_back
#define popk pop_back
#define mem(a,b) memset(a,b,sizeof a)
#define PII pair<int,int>
#define ll long long
#define lp p<<1
#define rp p<<1|1
#define emk emplace_back
#define INF 0x3f3f3f3f
using namespace std;
const int N = 1e5+9;
int stk[N],a[N];
int main() {
int m,n,K;
cin>>m>>n>>K;
while(K--){
int tt=0,idx=0,ok=1;
stk[++tt]=++idx;
rep(i,1,n) cin>>a[i];
rep(i,1,n){
while(stk[tt]!=a[i]&&tt<m) stk[++tt]=++idx;
if(stk[tt]!=a[i]){
ok=0;
break;
}
else tt--;
}
if(ok) puts("YES");
else puts("NO");
}
return 0;
}
/*
4 4
0023
5 2
01010
5 3
01010
*/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!