题解 | #简单错误记录#
简单错误记录
https://www.nowcoder.com/practice/2baa6aba39214d6ea91a2e03dff3fbeb
import java.math.*; import java.util.*; import java.util.concurrent.*; import java.util.concurrent.atomic.*; import java.util.stream.*; import java.util.regex.*; import java.util.function.*; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); List<String> list = new ArrayList<>(); Map<String, Integer> map = new HashMap<>(); while (in.hasNextLine()) { String line = in.nextLine(); // 边界!! String last = line.substring(line.lastIndexOf("\\")+1); String name = last.split(" ")[0]; String lineNum = last.split(" ")[1]; if (name.length() > 16) { name = name.substring(name.length() - 16); } String key = String.format("%s %s", name, lineNum); if (map.containsKey(key)) { map.put(key, map.getOrDefault(key, 0) + 1); } else { list.add(key); map.put(key, map.getOrDefault(key, 0) + 1); } } if (list.size() > 8) { // 边界!! list = list.subList(list.size() - 8, list.size()); } list.forEach(r -> { System.out.printf("%s %d\n", r, map.get(r)); }); } }