题解 | 【模板】栈
import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); int i = 0; int a[] = new int[(int)1e5+10]; while (n-->0) { String str = in.next(); if (str.equals("push")) { int x = in.nextInt(); a[i] = x; i++; } else if(str.equals("pop")) { if (i > 0) { i--; //i是当前的位置 打印的时候是需要i-1的位置 System.out.println(a[i]); } else { System.out.println("error"); } }else{ if (i > 0) { System.out.println(a[i-1]); } else { System.out.println("error"); } } } } }
用一个数组+一个指针来模拟这个操作,最多只能10的五次方次操作,可以定义一个10的五次方长度的数组。用一个指针i来控制栈顶的位置, 入栈a[i]=x, pop i先--. pop操作直接打印a[i-1]