828. 模拟栈
摘要
Title: 828. 模拟栈
Tag: 栈
Memory Limit: 64 MB
Time Limit: 1000 ms
Powered by:NEFU AB-IN
828. 模拟栈
-
题意
实现一个栈,栈初始为空,支持四种操作:
push x – 向栈顶插入一个数 x;
pop – 从栈顶弹出一个数;
empty – 判断栈是否为空;
query – 查询栈顶元素。
现在要对栈进行 M 个操作,其中的每个操作 3 和操作 4 都要输出相应的结果。 -
思路
用python列表模拟即可
c的放下面
-
用tt表示栈顶所在的索引。初始时,tt = -1。表示没有元素。
-
push x :栈顶所在索引往后移动一格,然后放入x。stk[++tt] = x。
-
pop : top 往前移动一格。tt–-。
-
empty :top 大于等于 0 栈非空,小于 0 栈空。tt == -1 ? “YES” : “NO”
-
query : 返回栈顶元素。stk[tt]
-
-
代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21'''
Author: NEFU AB-IN
Date: 2022-02-27 17:02:45
FilePath: \ACM\Acwing\828.py
LastEditTime: 2022-02-27 17:08:23
'''
if __name__ == "__main__":
n = int(input())
stk = []
for i in range(n):
op = input().split()
if op[0] == "push":
stk.append(op[1])
if op[0] == "pop":
stk.pop()
if op[0] == "empty":
print("NO" if stk else "YES")
if op[0] == "query":
print(stk[-1])