牛客:BISHI2 【模板】栈的操作

java 复制代码
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {

    List<Integer> ls = new ArrayList<>();

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int num = in.nextInt();
        Main m = new Main();
        for(int i = 0; i < num; i++){
            String a = in.next();
            switch(a){
                case "push":
                    int n = in.nextInt();
                    m.push(n);
                    break;
                case "size":
                    m.size();
                    break;
                case "pop":
                    m.pop();
                    break;
                case "query":
                    m.query();
                    break;
                default:
                    break;
            }
        }
    }

    public void push(int x){
        ls.add(x);
    }

    public void pop(){
        if(ls.size() > 0){
            ls.remove(ls.size() - 1);
        } else{
            System.out.println("Empty");
        }
    }

    public void query(){
        if(ls.size() > 0){
            System.out.println(ls.get(ls.size() - 1));
        } else {
            System.out.println("Empty");
        }
    }

    public void size(){
        System.out.println(ls.size());
    }

}

描述

实现一个初始为空的栈,支持以下操作:

∙ ∙ push(x):将整数 xx 入栈;

∙ ∙ pop():若栈非空,则删除栈顶元素;否则输出 EmptyEmpty;

∙ ∙ query():若栈非空,则输出栈顶元素;否则输出 EmptyEmpty;

∙ ∙ size():输出栈中元素的数量。

输入描述:

输入的第一行包含一个整数 n (1≦n≦105)n (1≦n≦105),表示操作总数;

接下来的 nn 行,每行描述一条操作,格式如下:

∘ ∘ "push x",将整数 x (−109≦x≦109)x (−109≦x≦109) 入栈;

∘ ∘ "pop"、"query"、"size",执行对应操作。

输出描述:

对每组数据,按操作顺序依次输出所有需要输出的结果,每次输出占一行。

思路

1.根据题目要求,自己实现栈方法;

2.借助List结构的方法实现对应栈方法;

相关推荐
wuminyu3 小时前
JVM规范学习总结:解释器与JIT编译器如何处理JVM字节码
java·linux·c语言·jvm·c++
txxzjmzlh3 小时前
SpringBoot 配置⽂件
java·spring boot·spring
小徐不徐说3 小时前
序列化与反序列化:把 C++ 对象可靠地保存下来
开发语言·数据库·c++·php
ZhengEnCi3 小时前
模型训练完整流程:从数据准备到模型上线的 10 个关键步骤(全文可跑)
后端·算法
ragnwang3 小时前
Notes: Python pybind11 import C++ module
开发语言·c++·python
Wang's Blog3 小时前
Java 项目实战: 交友项目 - 搜索附近的功能概述和分析
java·开发语言·交友
骑着蜗牛撵大象3274 小时前
大模型 Agent 的沙箱护栏:gVisor 隔离、出口白名单与审计闭环
java·开发语言·jvm·安全·agent沙箱·gvisor·microvm
独泪了无痕4 小时前
Hutool之LocalDateTimeUtil:让时间间隔操作如虎添翼
java
Dxy12393102165 小时前
JS DES 加密详解
开发语言·javascript·arcgis
充值内卷5 小时前
我给桌面加了个鱼缸:C++ 写后端,WebView2 里养一座 Three.js 小岛
开发语言·javascript·c++