题解 | #堆栈的使用#

堆栈的使用

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

#include <stack>
#include <map>
#include <string>
#include <iostream>
using namespace std;
// 对于每组测试数据,第一行是一个正整数 n(0 < n <= 10000)。
// 而后的 n 行,每行的第一个字符可能是'P'或者'O'或者'A';
// 如果是'P',后面还会跟着一个整数,表示把这个数据压入堆栈;
// 如果是'O',表示将栈顶的值 pop 出来,如果堆栈中没有元素时,忽略本次操作;
// 如果是'A',表示询问当前栈顶的值,如果当时栈为空,则输出'E'。堆栈开始为空。
int main() {
    int n;
    char op;
    int num;
    while (scanf("%d", &n) != EOF) {
        stack<int> stack;
        while (n--) {
            cin >> op;
            switch (op) {
                case 'P':
                    cin >> num;
                    stack.push(num);
                    break;
                case 'O':
                    if (!stack.empty()) {
                        stack.pop();
                    }
                    break;
                case 'A':
                    if (stack.empty()) {
                        cout << 'E' << endl;
                    } else {
                        cout << stack.top() << endl;
                    }
                    break;
                default:
                    break;
            }
        }
    }
}

全部评论

相关推荐

点赞 评论 收藏
分享
头像
02-15 16:23
中南大学 Java
野猪不是猪🐗:签了美团真是不一样! 亲戚们都知道我签了美团,过年都围着我问送一单多少钱,还让弟弟妹妹们引以为戒,笑我爸我妈养了个🐢孩子,说从小就知道我这个人以后肯定没出息,我被骂的都快上天了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务