Java 使用TreeSet排序,Map记录次数(也可替换为数组) 题解 | 字符统计

字符统计

https://www.nowcoder.com/practice/c1f9561de1e240099bdb904765da9ad0

import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        String str = in.next();
        HashMap<Character, Integer> mp = new HashMap<>();
        TreeSet<Character> st = new TreeSet<>(new Comparator<Character>(){
            @Override
            public int compare(Character c1,Character c2){
                if(mp.get(c1) == mp.get(c2)) return c1 - c2;
                else return mp.get(c2) - mp.get(c1);
            }
        });
        for(char c : str.toCharArray()){
            if(mp.containsKey(c))mp.put(c,mp.get(c) + 1);
            else mp.put(c,1);
        }
        for(Map.Entry<Character,Integer> entry : mp.entrySet()){
            st.add(entry.getKey());
        }
        for(char c : st){
            System.out.print(c);
        }
    }
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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