九度 题目1366:栈的压入、弹出序列
来源:互联网 发布:mysql 5.5.37 for mac 编辑:程序博客网 时间:2024/06/02 17:58
题目来源:http://ac.jobdu.com/problem.php?pid=1366
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:1487
解决:571
- 题目描述:
输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。
- 输入:
每个测试案例包括3行:
第一行为1个整数n(1<=n<=100000),表示序列的长度。
第二行包含n个整数,表示栈的压入顺序。
第三行包含n个整数,表示栈的弹出顺序。
- 输出:
对应每个测试案例,如果第二个序列是第一个序列的弹出序列输出Yes,否则输出No。
- 样例输入:
51 2 3 4 54 5 3 2 151 2 3 4 54 3 5 1 2
- 样例输出:
YesNo
<span style="font-family:KaiTi_GB2312;font-size:18px;">#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int MAXN = 100010;int arr[MAXN], arr1[MAXN], st1[MAXN];bool IsPopOrder(int n){ int top = 0, i = 0, j = 0, iPos = -1; while(j < n) { if(i < n) st1[top++] = arr[i++]; else iPos = j; while(top > 0 && st1[top-1] == arr1[j]) ++j, --top; if(iPos == j) return false; } return true;}int main(){ int n, i; while(~scanf("%d", &n)) { for(i = 0; i < n; ++i) scanf("%d", &arr[i]); for(i = 0; i < n; ++i) scanf("%d", &arr1[i]); if(IsPopOrder(n)) printf("Yes\n"); else printf("No\n"); } return 0;}</span>
0 0
- 题目1366:栈的压入、弹出序列-九度
- 九度 题目1366:栈的压入、弹出序列
- 九度题目1366——栈的压入弹出序列
- 九度 OJ 题目1366:栈的压入、弹出序列
- 九度_题目1366:栈的压入、弹出序列
- 【剑指Offer面试编程题】题目1366:栈的压入、弹出序列--九度OJ
- 九度OJ-题目1366:栈的压入、弹出序列
- 九度 1366 栈的压入弹出序列
- 九度oj-1366-栈的压入、弹出序列
- 题目1366:栈的压入、弹出序列
- 题目1366:栈的压入、弹出序列
- 题目1366:栈的压入、弹出序列
- 题目1366:栈的压入、弹出序列
- 九度OJ 1366 栈的压入、弹出序列 【数据结构】
- 题目22:栈的压入、弹出序列
- 算法题目---栈的压入、弹出序列
- 1366栈的压入弹出序列
- 【剑指Offer面试题】 九度OJ1366:栈的压入、弹出序列
- [leetcode]Minimum Window Substring
- POJ 1047——解题报告
- vs如何向main函数传参数、设置字符编码、设置OpenMp等
- 使用lint提高android代码质量
- 算法——动态规划篇——最长公共子序列
- 九度 题目1366:栈的压入、弹出序列
- java多线程
- 用maven导出依赖jar
- ios上ZXing库的配置流程
- pool is already maxed out. [managed: 15; max: 15]
- NetBeans 7.2 or 8.0 编辑文件时不显示文件路径。
- 如何制作Cognos Mobile上面Active Report
- json_decode 转换json对象为数组需注意true 你加了吗?
- linux 高级命令- -