828. 模拟栈

摘要
Title: 828. 模拟栈
Tag: 栈
Memory Limit: 64 MB
Time Limit: 1000 ms

Powered by:NEFU AB-IN

Link

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])
使用搜索:谷歌必应百度