题解 | #【模板】栈#
【模板】栈
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("操作不符合规定!"); } } } }#算法笔记#