题目选自洛谷P4387

是一道栈的题,能够帮助理解栈的更深层次。

题目大意就是判断序列是否可能是对应序列的出栈序列。

如何判断是不是合理的出栈序列呢?

对于序列a 我们依次和序列b来比较,如果不相同,则把a的当前数字入栈,如果相同,则出栈(不止出栈一次,可能连续出栈,但还没循环到a的下一个数字),

最后遍历完a的所有数字后,如果栈不为空,则代表这个出栈序列不合理,若为空则表示可以

题目描述

给出两个序列 pushed 和 poped 两个序列,其取值从 1 到 n(n≤100000)。已知入栈序列是 pushed,如果出栈序列有可能是 poped,则输出 Yes,否则输出 No。为了防止骗分,每个测试点有多组数据。

输入格式

第一行一个整数 q,询问次数。

接下来 q 个询问,对于每个询问:

第一行一个整数 n 表示序列长度;

第二行 n 个整数表示入栈序列;

第二行 n 个整数表示出栈序列;

输出格式

对于每个询问输出答案。

输入输出样例

输入 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<stdio.h>
#include<iostream>
#include<stack>
using namespace std;
int n,q;
int a[100001],b[100001];
stack<int> s;
void shuru(){cin>>q;for(int i=1;i<=q;i++)cin>>a[i];for(int i=1;i<=q;i++)cin>>b[i];
}
int main(){cin>>n;while(n--){shuru();int j=1;for(int i=1;i<=q;i++){s.push(a[i]);while(!s.empty() && s.top()==b[j]){s.pop(); j++;} }if(s.empty()) cout<<"Yes"<<endl;else cout<<"No"<<endl;while(!s.empty()) s.pop(); //清空上一次的栈}return 0;
}

栈——验证栈序列(洛谷 P4387)相关推荐

  1. [Catalan]求解随机出栈可能数(洛谷P1044题题解,Java语言描述)

    题目要求 P1044题目链接 分析 题意就是:N个数依次进栈,可随机出栈,算一下可能的出栈序列数. 其实这个就是Catalan啊,如果数据结构与算法有一定的刷题积累的学生应该经常做这样的About栈的 ...

  2. 洛谷--橙色百道DP总结

    最近刷完了洛谷橙色DP大约一百道,算是发现了一些套路,就部分题目做一些总结. 大概分为三类 第一类,九大背包及其衍生 第二类,经典DP模型,如LCS,LIS等 第三类,实际问题背景的普通,环形,树上D ...

  3. 信息学奥赛一本通 1924:【03NOIP普及组】栈 | 洛谷 P1044 [NOIP2003 普及组] 栈

    [题目链接] ybt 1924:[03NOIP普及组]栈 洛谷 P1044 [NOIP2003 普及组] 栈 [题目考点] 递推.递归 栈 [解题思路]:一维递推 设数组a,a[i]表示i个数组成的数 ...

  4. 946. 验证栈序列

    2020-05-15 1.题目描述 验证栈序列 2.题解 这个题目我本科的一位老师在给我们上算法课的时候讲过,他说关键是要明白我们什么时候需要入栈,什么 时候需要出栈,题目是要返回pushed数组能不 ...

  5. 栈——括号匹配(洛谷 Uva673)

    题目选自洛谷Uva673 括号匹配是和栈有关的经典算法问题 每次入栈的时候判断栈的顶部是不是这个符号的另一半,如果是就pop并且这个符号也不入栈,如果不是就入栈.最后判断栈是否为空,如果为空,说明正确 ...

  6. 洛谷 P2186 小Z的栈函数

    洛谷 P2186 小Z的栈函数 题目 题目描述 小Z最近发现了一个神奇的机器,这个机器的所有操作都是通过维护一个栈来完成的,它支持如下11个操作: NUM X:栈顶放入X. POP:抛弃栈顶元素. I ...

  7. 二分图——洛谷P1155 双栈排序

    https://daniu.luogu.org/problem/show?pid=1155 二分图染色+模拟 1.首先考虑一个简单情况--单栈排序,显然有这样的一个事实: a[i]和a[j] 不能压入 ...

  8. 青铜三人行之验证栈序列

    先说一个消息,为了方便互相交流学习,青铜三人行建了个微信群,感兴趣的伙伴可以扫码加下面的小助手抱你入群哦! 青铜三人行--每周一题@验证栈序列 视频讲解 力扣题目 验证栈序列 给定 pushed 和 ...

  9. 洛谷P1155 双栈排序

    这题什么毒瘤......之前看一直没思路,然后心说写个暴搜看能有多少分,然后就A了??! 题意:给你一个n排列,求它们能不能通过双栈来完成排序.如果能输出最小字典序方案. [update]这里面加了一 ...

最新文章

  1. webapp检测安卓app是否安装并launch
  2. XCode 4.3 不使用新特性 适用低版本的的项目 不是初学者就可以跳过了(转)
  3. java异常处理图片_Java处理图片时出现异常
  4. 51Nod 1102 面积最大的矩形 +1272 最大距离 单调栈
  5. 利用CMD在vim中直接编译
  6. 使用ubuntu的新立德下载和安装的Eclipse无法在其help菜单中连接并安装ADT
  7. java提示需要标识符,java错误需要标识符
  8. 保险未起保是投保成功了吗?
  9. UDP协议和socketserver以及文件上传
  10. QQ第三方授权登录(带详细源码)
  11. 安卓投屏软件_该内容只能用miracast投屏
  12. 无法找到 Adobe PDF资源文件。“Acrobat PDFMaker“您必须具有”管理员”权限方可安装这些文件...错误怎么解决
  13. 无人机动力组装与测试-电机、螺旋桨、电调、电池
  14. 【爬虫】使用request模块进行爬虫
  15. CANoe软件之离线数据分析
  16. 解决“电脑网络无法连接“问题
  17. 计算机ata考试题库答案,ATA考试系统题库【机房系统】
  18. “终于我从字节离职了...“一个年薪40W的测试工程师的自白..
  19. Holodesk VS CarbonData
  20. asic码转16进制c语言,十六进制数转换成ascii码

热门文章

  1. 大数据入门(一)-大数据概念和特点(1)
  2. Js中Currying的应用
  3. 手机python3ide加法器_Python3开发常用工具
  4. 涂抹果酱_如何玩果酱
  5. 表面上承认错误_做一个可以承认错误的领导者
  6. github 创始人_GitHub联合创始人Scott Chacon的视频采访,探讨代码之外的未来
  7. 安装Bootstrap3编译版本
  8. Bootstrap 弹出提示插件Popover 的选项
  9. SLAM GMapping(5)运动模型
  10. 视觉SLAM笔记(58) 字典