解题思路:在这个题目中,我们了解到需要输出最多的字符,所以我建立一个数组,初始化为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 人评分
DNA (C++代码)浏览:650 |
C语言考试练习题_保留字母 (C语言代码)浏览:565 |
C语言训练-大、小写问题 (C语言代码)浏览:2350 |
【回文数(二)】 (C语言代码)浏览:728 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:548 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:578 |
A+B for Input-Output Practice (V) (C语言代码)浏览:617 |
C二级辅导-阶乘数列 (C语言代码)浏览:688 |
【计算两点间的距离】 (C语言代码)浏览:1479 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:780 |