【九度OJ】题目1108:堆栈的使用 解题报告
来源:互联网 发布:淘宝天猫黑名单处理 编辑:程序博客网 时间:2024/05/16 01:07
【九度OJ】题目1108:堆栈的使用 解题报告
标签(空格分隔): 九度OJ
http://ac.jobdu.com/problem.php?pid=1108
题目描述:
堆栈是一种基本的数据结构。堆栈具有两种基本操作方式,push 和 pop。Push一个值会将其压入栈顶,而 pop 则会将栈顶的值弹出。现在我们就来验证一下堆栈的使用。
输入:
对于每组测试数据,第一行是一个正整数 n,0<n<=10000(n=0 结束)。而后的 n 行,每行的第一个字符可能是'P’或者'O’或者'A’;如果是'P’,后面还会跟着一个整数,表示把这个数据压入堆栈;如果是'O’,表示将栈顶的值 pop 出来,如果堆栈中没有元素时,忽略本次操作;如果是'A’,表示询问当前栈顶的值,如果当时栈为空,则输出'E'。堆栈开始为空。
输出:
对于每组测试数据,根据其中的命令字符来处理堆栈;并对所有的’A’操作,输出当时栈顶的值,每个占据一行,如果当时栈为空,则输出’E’。当每组测试数据完成后,输出一个空行。
样例输入:
3AP 5A4P 3P 6O A0
样例输出:
E53
Ways
堆栈的题目。
这个题目,很简单,只要按照规定去读和输出即可。
我写了几遍都是WA,最后仔细排查才发现,如果是A的话,不应该pop。
所以审题一定要仔细。
#include <stdio.h>#include <stack>#include <iostream>using namespace std;int main() { int n; while (scanf("%d", &n) != EOF && n != 0) { char op; stack<int> S; for (int i = 0; i < n; i++) { cin >> op; if (op == 'A') { if (S.empty()) { cout << "E" << endl; } else { cout << S.top() << endl; //S.pop(); #之前的错误。题目没要求弹出栈顶。 } } else if (op == 'P') { int oper; cin >> oper; S.push(oper); } else if (op == 'O') { if (!S.empty()) { S.pop(); } } } cout << endl; } return 0;}
Date
2017 年 3 月 2 日
0 0
- 【九度OJ】题目1108:堆栈的使用 解题报告
- 九度oj 题目1108:堆栈的使用
- 九度OJ题目1108:堆栈的使用
- 题目1108:堆栈的使用 九度OJ
- 九度OJ题目1108:堆栈的使用
- 【九度OJ】题目1207:质因数的个数 解题报告
- 【九度OJ】题目1087:约数的个数 解题报告
- 【九度OJ】题目1076:N的阶乘 解题报告
- 九度oj题目1088:剩下的树解题报告
- 九度OJ 1108 堆栈的使用
- 九度oj-1108-堆栈的使用
- 九度OJ 1108 堆栈的使用
- 九度OJ-1108-堆栈的使用
- 九度题目1108:堆栈的使用
- 九度OJ 1108:堆栈的使用 (堆栈)
- 【九度OJ】题目1202:排序 解题报告
- 【九度OJ】题目1061:成绩排序 解题报告
- 【九度OJ】题目1185:特殊排序 解题报告
- tensorflow 卷积神经网络
- 在服务器搭建WEB应用的方法(包括免输入工程名直接访问的设置)
- Activemq消息确认机制
- 天下无敌windows7系统下载给你看看
- 如何在HTML页面引入javaScript代码
- 【九度OJ】题目1108:堆栈的使用 解题报告
- aac adts 格式分析
- java编乘法口诀表
- 6.11、max、min、count、distinctCount、generate
- 测试迭代器和foreach来遍历集合
- Sentry日志收集系统修复
- poj 2311 Cutting Game
- 在首页调用不同分类商品样式与广告,cat_goods.lib
- UWP 制作汉堡菜单及添加滑动手势