字符串
【输入描述】
输入一行包含一个单词,单词只由小写英文字母组成。
hello
【输出描述】
输出两行,第一行包含一个英文字母,表示单词中出现得最多的字母是哪 个。如果有多个字母出现的次数相等,输出字典序最小的那个。
第二行包含一个整数,表示出现得最多的那个字母在单词中出现的次数。
l
2
【解答思路】
先计算出字符串中每个字母出现的次数
for(int i=0;i<s.length();i++){
a[s.charAt(i)-'a']++;
}
再比较大小
for(int i=0;i<26;i++){
if(a[i]>max){
max=a[i];
ch=(char)('a'+i); //转换
}
}
【代码实现】
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String s=scan.nextLine();
int[] a=new int[26];
for(int i=0;i<s.length();i++){
a[s.charAt(i)-'a']++;
}
char ch='a';
int max=0;
for(int i=0;i<26;i++){
if(a[i]>max){
max=a[i];
ch=(char)('a'+i);
}
}
System.out.println(ch);
System.out.println(max);
scan.close();
}
}
【运行结果】
hello
l
2
【代码解释】
a[s.charAt(i)-'a']++;
将字符'a'映射到索引0,将'b'映射到索引1,依此类推('z'映射到索引25) .
递增与该字符对应的计数器s1.charAt(i).
因此,此循环计算每个字母的出现次数String s1.
最后,a[0]将包含'a' a[1]的数量,'b'的数量等等.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)