Passion and Patience

Work Hard, Play Hard

导航

赛码:小红书推荐系统

忽略到输入的可能是子串包含关键字,会使得出现次数计算错误,修改为使用str.contains方法。

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);
        String[] str = null;
        int i = 0;
        // 注意 hasNext 和 hasNextLine 的区别
        // while (in.hasNext()) { // 注意 while 处理多个 case
        //     str[i++] = in.next();
        // }

        String strs = in.nextLine();
        str = strs.split(" ");
        List<String> list = findHighFrequency(str,str.length);
        
        list.forEach(item->System.out.println(item));
    }

    public static List<String> findHighFrequency(String[] str,int length){
        Map<String,Integer> map = new HashMap<String,Integer>();
        List<String> list = new ArrayList<>();

        int max = 0;
        for(int i = 0;i<length;i++){           
            if(map.containsKey(str[i])){
                int count = map.get(str[i]);
                map.put(str[i],++count);
                if(count>max){
                    list.clear();
                    list.add(str[i]);
                    max = count;
                    
                }else if(count == max){
                    list.add(str[i]);
                }
                continue;
            }
            map.put(str[i],1);
        } 

        Collections.sort(list); // Collections接口实现自动排序
        return list;       
    }
}

posted on 2024-03-28 22:21  安静的聆  阅读(8)  评论(0编辑  收藏  举报