牛客: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结构的方法实现对应栈方法;

相关推荐
aqiu1111111 小时前
【C++算法打怪专栏】LeetCode 402. 移掉 K 位数字(单调栈 + 贪心)
c++·算法·leetcode
房开民1 小时前
通俗总结 Octree(八叉树)
java·服务器·数据库
(Charon)1 小时前
【C++面试】线程并发与异步:区别、实现原理及使用场景
开发语言·c++
AIFQuant2 小时前
Python A股实时行情API接入:沪深股票数据与WebSocket推送实战
开发语言·python·websocket·金融·a股行情
糖果豆豆2 小时前
对象是字段,还是关系?集合论和范畴论吵了三十年,答案是两个都对
算法·架构
2302_805771072 小时前
Day23:POM设计模式(封装)
java·开发语言·设计模式
SL_staff2 小时前
APS降本增效的关键:在JVS中实现‘人-机-料-法-环’全要素耦合调度
java·github·全栈
十年Java程序媛2 小时前
Java String、StringBuilder、StringBuffer 底层原理|字符串拼接性能与线程安全
java·开发语言·spring boot·安全·面试
Cx330❀2 小时前
Qt 界面美化指南:从零掌握 QSS 核心机制与工程实践
开发语言·qt·ui·性能优化·图形渲染