题解 | 【模板】栈

【模板】栈

https://www.nowcoder.com/practice/104ce248c2f04cfb986b92d0548cccbf

import java.util.Scanner;

//和队列那题的模版基本一样,改个方向就行了
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();        
        in.nextLine();//吸收多余的1个换行符
        MyStack myStack = new MyStack(n);
        // 注意 hasNext 和 hasNextLine 的区别
        while (((n--) > 0) && in.hasNextLine()) { // 注意 while 处理多个 case
            String line = in.nextLine();
            String []arr = line.split(" ");
            try {
                if (arr[0].equals("push")) {
                    myStack.push(Integer.parseInt(arr[1]));
                } else if (arr[0].equals("pop")) {
                    System.out.println(myStack.pop());
                } else if(arr[0].equals("top")){
                    System.out.println(myStack.top());
                }
            } catch(RuntimeException e) {
                System.out.println(e.getMessage());
            }

        }
    }
}
class MyStack {
    private int topIndex = -1;
    private int [] arr;
    MyStack() {
        arr = new int[16];
    }
    MyStack(int n) {
        arr = new int[n];
    }
    public void push(int x) {
        arr[++topIndex] = x;
    }
    public int pop() {
        if (topIndex < 0)
            throw new RuntimeException("error");
        return arr[topIndex--];
    }
    public int top() {
        if (topIndex < 0)
            throw new RuntimeException("error");
        return arr[topIndex];
    }
}

全部评论

相关推荐

2025-12-14 11:43
黑龙江大学 Java
用微笑面对困难:确实比较烂,可以这么修改:加上大学的qs排名,然后大学简介要写一些,然后硕士大学加大加粗,科研经历第一句话都写上在复旦大学时,主要负责xxxx,简历左上角把学校logo写上,建议用复旦大学的简历模板
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务