解题思路:在这个题目中,我们了解到需要输出最多的字符,所以我建立一个数组,初始化为0,当有该字符的时候+1。我们在进行一个遍历输出

注意事项:

“A”=65
在建立统计数组时候,可以将arr[0],从arr[1]开始,这样可以将下标对应 

注意数组越界问题
参考代码:

import java.util.Arrays;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        // 创建一个扫描器对象,用于接收用户输入的字符串
        Scanner sc = new Scanner(System.in);
        // 读取用户输入的字符串
        String s = sc.next();
        // 创建一个长度为26的整型数组,用于存储每个字母出现的次数
        int[] arr = new int[26];
        // 将数组的第一个元素初始化为0
        arr[0] = 0;

        // 遍历输入的字符串
        for (int i = 0; i < s.length(); i++) {
            // 计算当前字符与'A'的差值,得到一个标志位
            int flag = 0;
            flag = (s.charAt(i) - 'A');
            // 根据标志位更新对应字母出现次数的计数
            arr[flag] += 1;
        }

        // 创建一个新的整型数组,用于存储原数组的副本
        int[] newArr = new int[arr.length];
        // 将原数组的元素复制到新数组中
        for (int i = 0; i < newArr.length; i++) {
            newArr[i] = arr[i];
        }
        // 对新数组进行排序
        Arrays.sort(newArr);
        // 初始化一个变量num,用于存储出现次数最多的字母的索引
        int num = -1;
        // 遍历原数组,找到出现次数最多的字母的索引
        int j = 0;
        for (j = 0; j < arr.length; j++) {
            if (arr[j] == newArr[arr.length - 1]) {
                num = j;
                // 输出出现次数最多的字母
                System.out.print((char) (65 + num));
            }
        }
        // 换行
        System.out.println();
    }
}


点赞(0)
 

0.0分

1 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 1 条评论

小文 9月前 回复TA
这个题还是很简单的,平常写就行