题解 | #【模板】栈#
【模板】栈
https://www.nowcoder.com/practice/104ce248c2f04cfb986b92d0548cccbf
import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 int times = in.nextInt(); MyStack stack = new MyStack(times); while (in.hasNext()) { // 注意 while 处理多个 case String op = in.next(); if (op.equals("push")) { int value = in.nextInt(); stack.push(value); } else if (op.equals("pop")) { try { int result = stack.pop(); System.out.println(result); } catch(NullPointerException e) { System.out.println("error"); } } else if (op.equals("top")) { try { int result = stack.top(); System.out.println(result); } catch(NullPointerException e) { System.out.println("error"); } } } } } class MyStack { int[] val; int top = -1; int maxSize; public MyStack(int maxSize) { this.maxSize = maxSize; this.val = new int[maxSize]; } public boolean push(int x) { top += 1; val[top] = x; return true; } public int pop() { if (top == -1) { throw new NullPointerException("栈为空"); } int result = val[top]; val[top] = 0; top--; return result; } public int top() { if (top == -1) { throw new NullPointerException("栈为空"); } int result = val[top]; return result; } }