题解 | #记票统计#
记票统计
https://www.nowcoder.com/practice/3350d379a5d44054b219de7af6708894
import java.util.*;
//简单的哈希表计数,坑点在于输出的时候要保持输入名字的顺序
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()){
int num = sc.nextInt();
TreeMap<String,Integer> box = new TreeMap<>();
String[] names = new String[num];
for (int i = 0; i < num; i++) {
String name = sc.next();
names[i] = name;
box.put(name,0);
}
int votes = sc.nextInt();
int invalidVotes = 0;
for (int j = 0; j < votes; j++) {
String nameOn = sc.next();
if (box.containsKey(nameOn)){
int tickets = box.get(nameOn);
tickets++;
box.put(nameOn,tickets);
}
else{invalidVotes++;}
}
for (int k = 0; k < num; k++) {
System.out.println(names[k]+" : "+box.get(names[k]));
}
System.out.println("Invalid : "+invalidVotes);
}
}
}