题解 | #【模板】栈#
【模板】栈
https://www.nowcoder.com/practice/104ce248c2f04cfb986b92d0548cccbf
import java.util.Scanner; import java.util.Stack; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { //重点是使用了现成的栈结构 private static Stack<Integer> stach = new Stack<>(); public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 while (in.hasNextInt()) { // 注意 while 处理多个 case int a = in.nextInt(); for (int i = 0; i < a; i++) { String ope = in.next(); if (ope.startsWith("push")) { int c = in.nextInt(); push((c)); } else if (ope.startsWith("pop")) { Integer inta = pop(); if (null == inta) { System.out.println("error"); } else { System.out.println(inta); } } else if (ope.startsWith("top")) { Integer inta = top(); if (null == inta) { System.out.println("error"); } else { System.out.println(inta); } } } } } static void push(int x) { stach.push(x); } static Integer pop() { //这个需要考虑 栈空的情况,否则会报栈溢出的异常 if (stach.isEmpty()) { return null; } return stach.pop(); } static Integer top() { //同pop方法一样 if (stach.isEmpty()) { return null; } return stach.peek(); } }