题解 | 简单错误记录
简单错误记录
https://www.nowcoder.com/practice/2baa6aba39214d6ea91a2e03dff3fbeb
import java.util.Scanner;
import java.util.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
// while (in.hasNextInt()) { // 注意 while 处理多个 case
// int a = in.nextInt();
// int b = in.nextInt();
// System.out.println(a + b);
// }
Map<String,Loginfo> tmp = new HashMap<>();
int total = 0;
while(in.hasNextLine()){
String tmpString = in.nextLine();
String filepath = tmpString.split(" ")[0];
String line = tmpString.split(" ")[1];
String[] tmpArr = filepath.split("\\\\");
String filename = tmpArr[tmpArr.length-1];
if(filename.length() > 16){
filename = filename.substring(filename.length()-16);
}
if(tmp.get(filename+"_"+line) == null){
Loginfo tmpinfo = new Loginfo();
tmpinfo.filename = filename;
tmpinfo.line = line;
tmpinfo.errornum = 1;
tmpinfo.sortnum = total;
tmp.put(filename+"_"+line,tmpinfo);
}else{
tmp.get(filename+"_"+line).errornum++;
// tmp.get(filename+"_"+line).sortnum = total;
}
total++;
}
// Set<String>[] keySet = tmp.keySet();
List<Loginfo> tmplist = new ArrayList<>();
tmp.entrySet().stream().sorted((s1,s2)->{return s1.getValue().sortnum.compareTo( s2.getValue().sortnum);})
.forEach((v)->{
tmplist.add(v.getValue());
});
int size = tmplist.size();
if(size >8){
int lst8 = size-8;
tmplist.subList(lst8,size).forEach(item->{
System.out.println(item.filename + " " +item.line + " " +item.errornum);
});
}else{
tmplist.forEach(item->{
System.out.println(item.filename + " " +item.line + " " +item.errornum);
});
}
}
}
class Loginfo{
public String filename;
public String line;
public Integer errornum;
public Integer sortnum;
}
查看58道真题和解析
