题解 | #简单错误记录#
简单错误记录
https://www.nowcoder.com/practice/2baa6aba39214d6ea91a2e03dff3fbeb
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
LinkedHashMap<String, Integer> linkedHashMap = new LinkedHashMap<>();
while (sc.hasNext()) {
String next = sc.next();
String number = sc.next();
String[] split = next.split("\\\\");
int begin = split[split.length - 1].length() > 16 ? split[split.length - 1].length() - 16 : 0;
String substring = split[split.length - 1].substring(begin);
StringBuilder sb = new StringBuilder();
//把文件名和编号合在一起,方便直接判断是否为同一个记录
sb.append(substring).append(number);
if (linkedHashMap.containsKey(sb.toString())) {
linkedHashMap.put(sb.toString(), linkedHashMap.get(sb.toString()) + 1);
} else {
linkedHashMap.put(sb.toString(), 1);
}
}
//begin为最后8个记录的起始位置
int begin = linkedHashMap.size() > 8 ? linkedHashMap.size() - 8 :0;
Set<Map.Entry<String, Integer>> entrySet = linkedHashMap.entrySet();
for (Map.Entry<String, Integer> entry : entrySet) {
if (begin > 0){
begin--;
continue;
}
String fileName = entry.getKey().replaceAll("[0-9]", "");
String number = entry.getKey().replaceAll("[a-z]", "");
System.out.println(fileName + " " + number + " " + entry.getValue());
}
}
}
查看12道真题和解析