题解 | #堆栈的使用#
堆栈的使用
https://www.nowcoder.com/practice/e91982a145944ceab6bb9a4a508e0e26
#include <iostream> #include <cstdio> #include <stack> using namespace std; int main() { int num; while (scanf("%d", &num) != EOF) { stack<int> testStack; //存放测试数据 for (int i = 0; i < num; i++) { char temp; scanf("%c", &temp); if (temp == '\n') { scanf("%c", &temp); //过滤收到回车情况 } if ('P' == temp) { //为P时入栈 int integer; scanf("%d", &integer); testStack.push(integer); } else if ('O' == temp) { //为O时,栈不空则出栈 if (!testStack.empty()) { testStack.pop(); } } else if ('A' == temp) { //为A时,查询当前值 if (!testStack.empty()) { printf("%d\n", testStack.top()); } else { printf("E\n"); } } } } } // 64 位输出请用 printf("%lld")