题解 | #简单错误记录#
简单错误记录
http://www.nowcoder.com/practice/2baa6aba39214d6ea91a2e03dff3fbeb
思路:用一个list保存错误信息,另一个list保存出现的次数。
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
ArrayList<String> list=new ArrayList<>();//存储错误信息
ArrayList<Integer> times=new ArrayList<>();//存储出现次数
while (in.hasNextLine()) { // 注意 while 处理多个 case
String str=in.nextLine();
String[] strArray=str.split("\\\\");//我用\\报错
String end=strArray[strArray.length-1];
if(end.length()>20){//16+空格+行数=20
end=end.substring(end.length()-20);
}
int index=list.indexOf(end);//得到当前错误信息在list中的下标
if(index!=-1){//当前错误信息在list中已经存在
times.set(index,times.get(index)+1);
}else{//list中没有当前错误信息
list.add(end);
times.add(1);
}
}
for(int i=list.size()>8?list.size()-8:0;i<list.size();i++){
System.out.println(list.get(i)+" "+times.get(i));
}
}
查看12道真题和解析