这好像是华为机试的一道题目,我采用JAVA来完成,用JAVA也可以用其他方法。
我用一个比较简单的方法,代码如下:
public class Str{
public static void main(String[] args){
String str = "sdasewdasdaeawfawerfadsdfasrfqwe";
int count = 0;
char res = getMostFrequencyChar(str, count);
System.out.println("出现次数最多的字母是:"+res);
}
public static char getMostFrequencyChar(String str, int count){
char ret= ' ';
int[] sum = new int[128];
for(int i=0; i<str.length(); i++){
char c = str.charAt(i);
if((65 <= c && c <= 90) || (97 <= c && c <=122))
sum[c]++;
}
for(int i=0; i<sum.length; i++)
if(sum[i] > count)
{
count = sum[i];
ret = (char) i;
}
System.out.println("出现最多的次数为:"+ count +"次");
return ret;
}
}
运行结果:
出现最多的次数为:7次
出现次数最多的字母是:a