这题有个特殊条件就是如果出现 相等个数的字母 则优先输出字母表在前的字母
题解:
先创建一个26字母表存放每个字母存在的个数,然后遍历字母表每个元素选出最大值元素。
代码为蓝桥杯题库第一个答案抄的:
/*先创建26个字母的整型数组,用数组存放每个字母的个数
* 之后再遍历这个数组的所有元素,选出元素最大值
* */
private static void outputMaximalChar(String str){
int[] a = new int[26];
//选出对应字母的个数
for (int i = 0; i < str.length(); i++) {
a[str.charAt(i) - 'a']++;
}
//默认为 a 通过加数字使其改变
char mostChar='a';
int maxNum=0;
//对数组进行判断,选出数组中 最大值元素
for(int i=0;i<26;i++) {
if(a[i]>maxNum) {
maxNum=a[i];
mostChar=(char)('a'+i);
}
}
System.out.println(mostChar);
System.out.println(maxNum);
}