题解 | #字符统计#

字符统计

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

import java.util.Collections;
import java.util.HashMap;
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextLine()) { // 注意 while 处理多个 case
            String str = in.nextLine();
            char[] chars = str.toCharArray();
            int[] charCount = new int[129];
            //将输入字符串作为下标,在charCount里保存每个ASCII码的计数
            for(char c: chars){
                charCount[(int)c]++;
            }
            //找到字符数量最多的值
            int max = 0;
            for(int i = 0; i < charCount.length; i++){
                if(charCount[i] > max) max = charCount[i];
            }
            //按照字符数量由多到少的顺序,将字符加入到StringBuilder
            StringBuilder sb = new StringBuilder();
            while(max > 0){
                for(int i = 0; i < charCount.length; i++){
                    if(charCount[i] == max) sb.append((char)i);
                }
                max--;
            }
            System.out.print(sb.toString());
        }
    }
}

全部评论

相关推荐

头像
11-21 11:39
四川大学 Java
是红鸢啊:忘了还没结束,还有字节的5k 违约金
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务