24 - 栈的基本操作

现在给你一个栈,它一开始是空的,你需要模拟栈的操作。栈的操作包括如下:

1. “push x”:将元素 x 放入栈中,其中x是一个int范围内的整数;

2. “pop”,将栈顶元素取出来,如果此时栈是空的,那么我们不进行任何操作;

3. “top”,输出栈顶元素对应的值,如果此时栈是空的,那么我们需要输出一个字符串“empty”;

4. “size”,输出当前栈中元素的个数。

输入

第一行一个正整数 n (1≤n≤100000),用于表示操作的数量。

接下来 n 行,每行可能是如下结构:

1. “push x”:将元素 x 放入栈中,其中x是一个int范围内的整数;

2. “pop”,将栈顶元素取出来,如果此时栈是空的,那么我们不进行任何操作;

3. “top”,输出栈顶元素对应的值,如果此时栈是空的,那么我们需要输出一个字符串“empty”;

4. “size”,输出当前栈中元素的个数。

输出

你需要判断每一行输入,并执行对应的操作。

样例

输入

9
push 3
push 5
top
size
pop
pop
pop
top
size

输出

5
2
empty
0

提示

【样例解释】

step.1: 将3 push 入栈,此时栈中元素(从顶到底)为:[ 3 ]

step.2: 将5 push 入栈,此时栈中元素(从顶到底)为:[ 5, 3 ]

step.3: 输出栈顶元素,此时栈顶元素为5,所以输出“5”

step.4: 输出栈中元素个数,此时栈中元素个数为2,所以输出“2”

step.5: 将栈顶元素出栈,栈顶元素5出栈后,栈中元素(从顶到底)为:[ 3 ]

step.6: 将栈顶元素出栈,栈顶元素3出栈后,栈中元素(从顶到底)为:[ ] , 是一个空栈了

step.7: 将栈顶元素出栈,按时因为这个时候栈已经空了,所以我们什么操作都不做

step.8: 输出栈顶元素,此时栈为空,所以输出“empty”

step.9: 输出栈中元素个数,此时栈中元素个数为0,所以输出“0”

时间限制 2 秒
内存限制 128 MB
讨论 统计
上一题 下一题