试题 G: 单词分析
时间限制: 1.0s 内存限制: 512.0MB 本题总分:20 分
[问题描述]
小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组成,有些单词很长,远远超过正常英文单词的长度。小蓝学了很长时间也记不住一些单词,他准备不再完全记忆这些单词,而是根据单词中哪个字母出现得最多来分辨单词。
现在,请你帮助小蓝,给了一个单词后,帮助他找到出现最多的字母和这个字母出现的次数。
[输入格式]
输入一行包含一个单词,单词只由小写英文字母组成。
[输出格式]
输出两行,第一行包含一个英文字母,表示单词中出现得最多的字母是哪个。如果有多个字母出现的次数相等,输出字典序最小的那个。第二行包含一个整数,表示出现得最多的那个字母在单词中出现的次数,
//给了一个单词后,帮助他找到出现最多的字母和这个字母出现的次数。
//思路 转成数组
Scanner sc = new Scanner(System.in);
char[] arr = sc.next().toCharArray();
Arrays.sort(arr);//排序 这样出来的数组就是aaaabbbbddddddddd这样的
int maxLen = 1;//动态记录最大长度
String res = "";//出现最多的字母
int beg = 0;//记录开始索引
for (int i = 1; i < arr.length; i++) {
if (arr[beg] != arr[i] || i == arr.length - 1) {
int len = i - beg;
beg = i;
if (maxLen < len) {
maxLen = len;
res = arr[beg - 1] + "";
}
}
}
System.out.println(res);
System.out.println(maxLen);
但是有个没通过不知道那个的问题