62,614
社区成员
发帖
与我相关
我的任务
分享
String str = "jdsalfjaslnzdfuawoejlljafd";
int max = 0;
Map<Character, Integer> map = new HashMap<Character, Integer>(str.length());
for(char chr : str.toCharArray()) {
Integer i = map.get(chr);
int value = (i == null) ? 0 : i; // 获取,没有则0,有则叠加
map.put(chr, ++value);
max = value > max ? value : max; // 更新max
}
System.out.println(max);
String str = "afdbsodfusdfalgaufaowejhnlgjaouowejhgajgabcdefghijklmnopqrstuvwxyz,./?'????????????????????????????????????????";
int[] sum = new int[52];
int max = 0;
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (c >= 65 && c <= 90)//A~Z
sum[c - 65]++;
else if (c >= 97 && c <= 122)//a~z
sum[c - 71]++;
else
continue;
}
for (int i = 0; i < sum.length; i++)
if (sum[i] > max)
max = sum[i];
System.out.println(max);
我的只不过是代码不好看。复杂度不见得高啊。
String s = "adfoweyirlkbasgxalueralsdhg"; // 待统计字符串
int max = 0; // 记录最大出现次数
int[] cnt = new int[127]; // 临时计数用的数组
for (int i = 0; i < s.length(); i++) { // 循环字符以做统计
char c = s.charAt(i); // 取出单个字母
max = (++cnt[c] > max) ? cnt[c] : max; // 计数并检测最大出现次数
}
System.out.println (max);