题解 | #【模板】栈#
【模板】栈
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();
}
}
