小文


私信TA

用户名:dotcpp0617411

访问量:451

签 名:

等  级
排  名 7280
经  验 1330
参赛次数 0
文章发表 4
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

解题思路:在这个题目中,我们了解到需要输出最多的字符,所以我建立一个数组,初始化为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分

1 人评分

  评论区

这个题还是很简单的,平常写就行
2024-04-09 22:07:36
  • «
  • 1
  • »