题解 | #简单错误记录#
简单错误记录
https://www.nowcoder.com/practice/2baa6aba39214d6ea91a2e03dff3fbeb
import java.util.HashMap; import java.util.LinkedHashMap; import java.util.Map; import java.util.Scanner; // public class Main { // 输出最后出现的八条错误记录。对相同的错误记录只记录一条 循环记录时,只以第一次出现的顺序为准,后面重复的不会更新它的出现时间,仍以第一次为准 // hashSet,数组 错误记录数量满足1≤n≤100 ,每条记录长度满足 1≤len≤100 public static void main(String[] args) { HashMap<String, Integer> hashMap = new LinkedHashMap<String, Integer>();// 作判断及存储使用 全字符串尾16+" "+行号,次数且有序输出 Scanner in = new Scanner(System.in); while (in.hasNextLine()) { String str = in.nextLine(); String[] strs = str.split(" ");// 最后一个索引的空格前进行拼接 String str0 = strs[0].substring(strs[0].lastIndexOf("\\") + 1); String str1 = strs[1]; str0 = str0.substring(Math.max(str0.length() - 16, 0)) + " " + str1;// 尾16+" "+行号 if (!hashMap.containsKey(str0)) { hashMap.put(str0, 1); } else { hashMap.put(str0, hashMap.get(str0) + 1); } } // 有序输出---起始处,跳过开始 int count = 0; for (Map.Entry<String, Integer> it : hashMap.entrySet()) { if (hashMap.size() - count > 8) { count++; continue; } System.out.println(it.getKey() + " " + it.getValue()); } } }