出问题的地方:
入栈的时候操作应该是stk[++ tt] = x
,不该是 tt ++
import java.util.*;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = Integer.parseInt(sc.nextLine());
MyStack stk = new MyStack(n);
for (int i = 0; i < n; i ++ ) {
String str = sc.nextLine();
String[] strs = str.split(" ");
if ("push".equals(strs[0])) {
int x = Integer.parseInt(strs[1]);
stk.push(x);
} else if ("pop".equals(strs[0])) {
stk.pop();
} else if ("empty".equals(strs[0])) {
if (stk.isEmpty()) System.out.println("YES");
else System.out.println("NO");
} else if ("query".equals(strs[0])) {
System.out.println(stk.query());
}
}
}
}
class MyStack {
public int[] stk;
public int tt;
public MyStack(int size) {
stk = new int[size];
tt = 0;
}
public void push(int x) {
stk[ ++ tt] = x;
}
public void pop() {
tt -- ;
}
public boolean isEmpty() {
return tt == 0;
}
public int query() {
return stk[tt];
}
}