【深基15.习9】验证栈序列
题目描述
给出两个序列 pushed 和 poped 两个序列,其取值从 1 到 \(n(n\le100000)\)。已知入栈序列是 pushed,如果出栈序列有可能是 poped,则输出 Yes
,否则输出 No
。为了防止骗分,每个测试点有多组数据,不超过 \(5\) 组。
输入格式
第一行一个整数 \(q\),询问次数。
接下来 \(q\) 个询问,对于每个询问:
第一行一个整数 \(n\) 表示序列长度;
第二行 \(n\) 个整数表示入栈序列;
第三行 \(n\) 个整数表示出栈序列;
输出格式
对于每个询问输出答案。
样例 #1
样例输入 #1
2 5 1 2 3 4 5 5 4 3 2 1 4 1 2 3 4 2 4 1 3
样例输出 #1
Yes No
我的作答
#include <cstdio> #include <vector> using namespace std; #define MAX_SIZE 100010 int main() { int q; scanf("%d",&q); for (int j=0;j<q;j++) { int n; scanf("%d",&n); int pushed[MAX_SIZE],poped[MAX_SIZE]; for (int i=0;i<n;i++) { scanf("%d",&pushed[i]); } for (int i=0;i<n;i++) { scanf("%d",&poped[i]); } vector<int> mystack; int s=0; for (int i=0;i<n;i++) { mystack.push_back(pushed[i]); while(!mystack.empty() && poped[s]==mystack.back()) { mystack.pop_back(); s++; } } if (mystack.empty()) { printf("Yes\n"); } else printf("No\n"); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律