题解 | #字符统计#

字符统计

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());
        
    }
}

全部评论

相关推荐

09-18 20:41
阿里巴巴_后端
要个offer怎么这...:哈哈哈哈哈哈,我也拿了0x10000000个offer,秋招温啦啦啦,好开心
我的秋招日记
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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