题解 | #堆栈的使用#

堆栈的使用

https://www.nowcoder.com/practice/e91982a145944ceab6bb9a4a508e0e26

#include<iostream>
#include<stack>
#include<map>
#include<string>
using namespace std;


//习题5.1 堆栈的使用
/*
对于每组测试数据,第一行是一个正整数 n(0 < n <= 10000)。而后的 n 行,每行的第一个字符可能是'P'或者'O'或者'A';
如果是'P',后面还会跟着一个整数,表示把这个数据压入堆栈;如果是'O',表示将栈顶的值 pop 出来,
如果堆栈中没有元素时,忽略本次操作;如果是'A',表示询问当前栈顶的值,如果当时栈为空,则输出'E'。堆栈开始为空。
*/
int main()
{
	int n;
	while (cin>> n) {
		stack<int> myStack;
		for (int i = 0; i < n; i++) {
			char s;
			cin >> s;
			//cout << "s:" << s << " " << endl;
			if (s == 'P') {
				int temp = 0;
				cin >> temp;
				myStack.push(temp);
			}
			else if (s == 'O') {
				if (!myStack.empty()) {
					myStack.pop();
				}
			}
			else if (s == 'A'){
				if (!myStack.empty()) {
					cout << myStack.top() << endl;
				}
				else {
					cout << "E" << endl;
				}
			}
		}
	}

	return 0;
}

全部评论

相关推荐

12-27 22:49
门头沟学院 Java
点赞 评论 收藏
分享
12-18 18:50
已编辑
门头沟学院 golang
牛客33637108...:重点是要事已密成,在没有进入这家公司之前,不要有任何的泄露信息,我之前跟你一样,面了一家光伏设备厂,底薪7500加上出差补贴大概有13,000左右,已经给了口头offer了,甚至要了我的在校成绩的所有信息,还向我要了三方的网签二维码,到后面还是毁约了,我干过最愚蠢的事情就是向同学透露要签三方的事,之后的失败只会让他们幸灾乐祸,这是即将结束的大学生活给我的最后一课,不要相信任何的口头三方,该面的就去面,甚至签了三方也有毁约的可能,就像我现在签了三方还在外面实习呢,春招还是要继续参加的,不能停止面试,不然到后面毁三方的时候,重新捡起的面试很麻烦的,这是我一点点小小的见解。
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务