题目描述
有一个初始为空的栈,我们对这个栈进行n次操作,操作共分为2种:
-
1 x(将数字 x 放入栈)
-
2(将栈顶元素弹出)
对于第2种操作,你需要把弹出的这个数字输出,如果进行操作2时,栈为空,则输出"empty"。
例如:n = 5,对应的操作为:
1 123 (操作后栈里面的元素为:123)
1 234(操作后栈里面的元素为:123, 234)
2(输出:234,操作后栈里面的元素为:123)
2(输出:123,操作后栈里面的元素为:空)
2(输出:empty)
对应后面3个第2类操作,你的程序需要输出,
234
123
empty
输入格式
第一行:1个数n(1 <= n <= 10000)
后面n行:每行1种操作,1 X或者2(0 <= x <= 10000)
输出格式
对应所有操作2,输出被弹出的数或者"empty"
样例
【样例输入】
5
1 123
1 234
2
2
2
【样例输出】
234
123
empty
题解:
#include <bits/stdc++.h>
using namespace std;
stack<int> ms;
int main() {
int n;
cin >> n;
for (; n--;) {
int a, b;
cin >> a;
if (a == 1) {
cin >> b;
ms.push(b);
} else {
if (ms.empty()) {
cout << "empty" << endl;
} else {
cout << ms.top() << endl;
ms.pop();
}
}
}
return 0;
}