题解 | #记票统计#
记票统计
https://www.nowcoder.com/practice/3350d379a5d44054b219de7af6708894
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.hasNext()) { // 注意 while 处理多个 case int conNum = in.nextInt(); Map<String,Integer> conAndVotesNumMap=new LinkedHashMap<>(); for (int i = 0; i < conNum; i++) { String con = in.next(); conAndVotesNumMap.put(con,0); } //投票人数 int voteNum=in.nextInt(); int invalid=0; for(int i=0;i<voteNum;i++){ //投票对象 String voteTo=in.next(); Integer num=conAndVotesNumMap.get(voteTo); //num为null,说明投票对象不是候选人 if(num==null){ invalid++; }else{ conAndVotesNumMap.put(voteTo,num+1); } } Set<Map.Entry<String,Integer>> set=conAndVotesNumMap.entrySet(); for(Map.Entry<String,Integer> entry:set){ System.out.println(entry.getKey()+" : "+entry.getValue()); } System.out.println("Invalid : "+invalid); } } }
很短的逻辑,利用hashMap,也响应考点,只是LinkedHashMap和HashMap的特性要了解,以及知道Map的遍历方式。