问题描述
给定一个只包含大写字母的字符串S,输出出现次数最多的字母。
如果有多个字母出现了最多次,按字母表顺序输出这些字母。
样例输入
AAABBBC
样例输出
AB
思路分析
创建一个26个元素的数组,分别对应字母表。
统计字符串中字母出现的次数,赋值到字母表数组中。
统计数组中最大值并输出。
代码
import java.util.Arrays;
import java.util.Scanner;
public class test {
public static void main(String args[]) {
Scanner scan = new Scanner(System.in);
String S = scan.next();//输入字符串
int len = S.length();//统计字符串长度
int[] array = new int[26];//创建一个26个元素的数组,每一个元素分别对应字母表
int i,max = 0;
for(i = 0; i < len; i++) {
array[S.charAt(i) - 'A']++;//统计字符串中字符出现的总次数
max = Math.max(max, array[S.charAt(i) - 'A']);//统计字符串中的字符出现的最大值
}
for(i = 0; i < 26; i++ ) {
if(max == array[i])
System.out.printf("%c",(char)(i + 'A'));//输出最大值
}
}
}
输入
BBBAACCCD
结果
BC