题解 | 简单错误记录

简单错误记录

https://www.nowcoder.com/practice/2baa6aba39214d6ea91a2e03dff3fbeb

import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String[] info = new String[100];
        int[] error = new int[100];
        HashMap<String, Integer> hm = new HashMap<>();
        List<String> order = new ArrayList<>();  //保存顺序
        int i = 0;  //输入第i条数据
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextLine()) { // 注意 while 处理多个 case
            info[i] = in.next();
            int cul = in.nextInt();  //行号
            int index = info[i].lastIndexOf('\\');  //提取文件
            String folder = info[i].substring(index + 1);
            if (folder.length() > 16) {
                folder = folder.substring(folder.length() - 16);
            }
            String infos = folder + " " + cul;
            Integer exist = hm.getOrDefault(infos, 0);
            hm.put(infos, exist + 1);
            if (exist == 0) {  //新的报错信息
                order.add(infos);
            }
            in.nextLine();  //吸收换行符
        }

        for (int j = (order.size() - 8 < 0) ? 0 : order.size() - 8; j < order.size(); j++) {
            String key = order.get(j);
            Integer value = hm.get(key);
            System.out.println(key + " " + value);
        }
    }
}

全部评论

相关推荐

05-19 20:18
已编辑
长沙理工大学 Java
2025916Ney...:你能这时候知道要实习已经超过90%不要放弃
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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