public class GFG
{
static final int ASCII_SIZE = 256;
static char getMaxOccuringChar(String str)
{
int count[] = new int[ASCII_SIZE];
int len = str.length();
for (int i=0; i<len; i++)
count[str.charAt(i)]++;
int max = -1;
char result = ' ';
for (int i = 0; i < len; i++) {
if (max < count[str.charAt(i)]) {
max = count[str.charAt(i)];
result = str.charAt(i);
}
}
return result;
}
我停在这里,无法计算重复次数最多的字符。
最佳答案
问题是您应该迭代 count
数组中的字符而不是字符串内容。你已经数过了。此外,结果
将是由i
的值表示的字符,因此您可以将i
转换为char
。最后,除非您想计算空格数,否则您应该忽略字符 32
(空格)和可能的其他空白字符,否则它们可能最终成为最常见的字符。这是一个计算最重复字符的版本:
class GFG {
public static void main(String[] args) {
GFG s = new GFG();
char c = s.getMaxOccuringChar("People say there is nothing like a banana cream pie");
System.out.println("Max char is " + c);
}
static final int ASCII_SIZE = 256;
static char getMaxOccuringChar(String str) {
int count[] = new int[ASCII_SIZE];
int len = str.length();
for (int i = 0; i < len; i++)
count[str.charAt(i)]++;
int max = -1;
char result = ' ';
for (int i = 0; i < count.length; i++) {
if (max < count[i] && i != 32) {
max = count[i];
System.out.println("Max: "+max+" char: "+(char)i);
result = (char)i;
}
}
return result;
}
}
这将打印出:
Max: 0 char:
Max: 1 char: P
Max: 6 char: a
Max: 7 char: e
Max char is e
关于java - 我搜索实现函数获取字符串中出现次数最多的字符并对其进行计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61895477/