题解 | #记票统计#

记票统计

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的遍历方式。

全部评论

相关推荐

程序员小白条:主要没亮点,项目也是网上的,平平无奇,那只能海投了,奖项总得有一些,然后就是现在最好是前后端都会,自己能做项目并且运维的,要么找星球项目改改,要么找个开源项目改改,自己能拓展功能才是主要的,跟做效率很低很低
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务