LintCode算法题
本人的拙见,不保证为最佳算法,只为通过本题。
输出字符串中字符出现最多的次数以及字符。
字符串中只允许出现大小写字母,如果需要其余字符,需要更改代码。
上代码
private static int most(String str) {
if (str == null) {
return 1;
}else if (str.length() == 0){
return 0;
}else {
int[] letter = new int[52];
for (char i:str.toCharArray()) {
if (i >= 65 && i <= 90){
letter[i-65]++;
}else if (i >= 97 && i <= 122){
letter[i-71]++;
}
}
//改方法返回值为char,即为返回出现次数最多的字符
/*int num = 0,temp = letter[0];
for (int i = 1; i < letter.length-1; i++) {
if (letter[i] > temp){
num = i;
temp = letter[i];
}
}
if (num>=0&&num<=26)
return (char) (num+65);
else
return (char) (num+97);*/
Arrays.sort(letter);
return letter[letter.length-1];
}
}