题解 | #【模板】栈#
【模板】栈
https://www.nowcoder.com/practice/104ce248c2f04cfb986b92d0548cccbf
import java.util.Arrays;
import java.util.Objects;
import java.util.Scanner;
import java.util.Stack;
/**
* @Author MengLinJie
* @Date 2023/8/17 3:17 下午
*/
public class Main {
//操作类型
enum OperateType {
PUSH("push"),
POP("pop"),
TOP("top"),
OTHER("other");
private String desc;
OperateType(String desc) {
this.desc = desc;
}
public String getDesc() {
return desc;
}
public static OperateType getOperateType(String desc) {
return Arrays.stream(OperateType.values()).filter(e -> Objects.equals(
e.getDesc(), desc)).findFirst().orElse(OTHER);
}
}
public static void main(String[] args) {
// 定义栈
Stack<Integer> stack = new Stack<>();
Scanner in = new Scanner(System.in);
// 操作次数
int i = in.nextInt();
for (int j = 0; j < i; j++) {
OperateType type = OperateType.getOperateType(in.next());
switch (type) {
case PUSH:
stack.push(in.nextInt());
break;
case POP:
if (stack.empty()) {
System.out.println("error");
} else {
System.out.println(stack.pop());
}
break;
case TOP:
if (stack.empty()) {
System.out.println("error");
} else {
System.out.println(stack.peek());
}
break;
default:
System.out.println("操作不符合规定!");
}
}
}
}
#算法笔记#