题解 | #【模板】栈#

【模板】栈

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("操作不符合规定!");
            }
        }
    }
}

#算法笔记#
全部评论

相关推荐

点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务