题解 | #堆栈的使用#

堆栈的使用

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

语言:C++11

方法:库函数stack的基本操作

#include "iostream"
#include "stack"

using namespace std;

int main() {
    // I/O 加速
    std::ios::sync_with_stdio(false);
    std::cin.tie(0);
    int n;
    while (cin >> n) {                                          // 用于多组数据输入
        stack<int> Stack;                                       // 栈
        for (int i = 0; i < n; ++i) {                           // 处理接下来的n组数据
            char input;                                         // 用于接收输入的 P(压栈) O(出栈) A(问询)
            int inputNum;
            cin >> input;
            if (input == 'P') {                                 // 情况 P(压栈)
                cin >> inputNum;
                Stack.push(inputNum);
            } else if (input == 'O' && !Stack.empty()) {        // 情况 O(出栈)
//                cout << Stack.top() << endl; // 不需要输出
                Stack.pop();
            } else if (input == 'A') {
                if (!Stack.empty()) cout << Stack.top() << endl; // 情况 A(问询)
                else cout << "E" << endl;
            }
        }
    }
    return 0;
}

全部评论

相关推荐

牛舌:如果我不想去,不管对方给了多少,我一般都会说你们给得太低了。这样他们就会给下一个offer的人更高的薪资了。
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务