题解 | #配置文件恢复#

配置文件恢复

https://www.nowcoder.com/practice/ca6ac6ef9538419abf6f883f7d6f6ee5

import java.io.IOException;
import java.util.Scanner;
import java.util.HashMap;
import java.util.Map;

public class Main {
    public static void main(String[] args) throws IOException, InterruptedException {
        Scanner sc = new Scanner(System.in);
        HashMap<String, String> map = new HashMap();
        map.put("reset board", "board fault");
        map.put("board add", "where to add");
        map.put("board delete", "no board at all");
        map.put("reboot backplane", "impossible");
        map.put("backplane abort", "install first");
        while(sc.hasNextLine()){
            String input = sc.nextLine();
            String output = match(input, map);
            System.out.println(output);
        }

    }

    private static String match(String input, HashMap<String, String> map) {
        // 处理特殊情况
        String[] tokens = input.split(" ");
        if(tokens.length == 1){
            if("reset".indexOf(tokens[0]) == 0){
                return "reset what";
            } else {
                return "unknown command";
            }
        }
        if(tokens.length > 2){
            return "unknown command";
        }
        // 遍历Hash表,看看又没有匹配的
        int count = 0;
        String key = null;
        for (Map.Entry<String, String> entry : map.entrySet()) {
            String[] keys = entry.getKey().split(" ");
            if(keys[0].indexOf(tokens[0]) == 0){
                if (keys[1].indexOf(tokens[1]) == 0){
                    count++;
                    key = entry.getKey();
                }
            }
        }
        // 匹配一个的则匹配成功,匹配0个或多个则匹配失败
        if(count == 1){
            return map.get(key);
        } else{
            return "unknown command";
        }
    }
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
06-29 17:30
找实习找着找着就要进入7月了,马上秋招也要开始了,找实习还有意义吗?
绝迹的星:有面就面, 没面上就当日薪4位数大佬免费培训, 面上了再考虑要不要实习
点赞 评论 收藏
分享
05-14 09:24
青岛工学院 C++
点赞 评论 收藏
分享
05-12 17:00
门头沟学院 Java
king122:你的项目描述至少要分点呀,要实习的话,你的描述可以使用什么技术,实现了什么难点,达成了哪些数字指标,这个数字指标尽量是真实的,这样面试应该会多很多,就这样自己包装一下,包装不好可以找我,我有几个大厂最近做过的实习项目也可以包装一下
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务