试题C:字符统计
思路:经典算法问题,寻找出现次数最多的字母,思路就是先用数字统计每个字母的出现次数,因为字母有26个所以,开一个26大小的就可以,a[i],i就是字母对应的索引,a[i]就是对应的出现次数,然后寻找到数组最大的值就可以了。
import java.util.*; public class Main { public static void main(String [] args) { Scanner in = new Scanner (System.in); // 先把字符串打散成字符数组 char [] strs = in.nextLine().trim().toCharArray(); int a [] = new int [30]; // 然后统计每个字符的出现次数 for (int i = 0; i < strs.length; ++ i) { int t = strs[i] - 'A'; a[t] ++; } int max = 0; // 寻找出现次数最多的字符对应的数字 for (int i = 0; i < 26; ++ i) max = Math.max(max, a[i]); for (int i = 0; i < 26; ++ i) { // 然后再寻找一下 按顺序的 与max等值的字母还有哪些 if (a[i] == max) System.out.print((char)(i + (int)'A')); } } }