题解 | #字符统计#

字符统计

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

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner fzhinput = new Scanner(System.in);
        String zfc = fzhinput.nextLine();
        LinkedHashMap<Character,Integer> zd = new LinkedHashMap<>();
        
        for (char ch : zfc.toCharArray()) {
            zd.put(ch, zd.getOrDefault(ch, 0) + 1);
        }

        // 将Map中的键提取到列表中,并按频率降序和ASCII码升序排序
        List<Character> characters = new ArrayList<>(zd.keySet());
        characters.sort((a, b) -> {
            int freqCompare = zd.get(b) - zd.get(a); // 按频率降序排序
            if (freqCompare != 0) {
                return freqCompare;
            } else {
                return a - b; // 如果频率相同,按ASCII码升序排序
            }
        });

        StringBuilder result = new StringBuilder();
        for (char c : characters) {
            result.append(c);
        }
        System.out.println(result.toString());
        
    }
}

全部评论

相关推荐

11-27 17:35
已编辑
蚌埠坦克学院 C++
深信服 后台开发 n×12
点赞 评论 收藏
分享
无情咸鱼王的秋招日记之薛定谔的Offer:好拒信,偷了,希望有机会用到
点赞 评论 收藏
分享
joe2333:怀念以前大家拿华为当保底的日子
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-27 10:28
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务