试题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'));
}
}
}