給定段落作爲輸入,找到最頻繁出現的字符。請注意,角色的情況並不重要。如果不止一個字符具有相同的最大發生頻率,則返回所有這些字符 我正在嘗試這個問題,但我沒有結果。以下是我試過的代碼,但它有許多錯誤,我無法糾正:如何使用Java查找字符串中最常出現的字符?
public class MaximumOccuringChar {
static String testcase1 = "Hello! Are you all fine? What are u doing today? Hey Guyz,Listen! I have a plan for today.";
public static void main(String[] args)
{
MaximumOccuringChar test = new MaximumOccuringChar();
char[] result = test.maximumOccuringChar(testcase1);
System.out.println(result);
}
public char[] maximumOccuringChar(String str)
{
int temp = 0;
int count = 0;
int current = 0;
char[] maxchar = new char[str.length()];
for (int i = 0; i < str.length(); i++)
{
char ch = str.charAt(i);
for (int j = i + 1; j < str.length(); j++)
{
char ch1 = str.charAt(j);
if (ch != ch1)
{
count++;
}
}
if (count > temp)
{
temp = count;
maxchar[current] = ch;
current++;
}
}
return maxchar;
}
}
的可能重複[如何返回最長序列在java中的字符串中的字符?](http://stackoverflow.com/questions/21748970/how-to-return-longest-sequence-of-chars-in-a-string-in-java) – Maroun
好的,什麼是你的問題? – AlexR
這是'Map'的典型情況,其中鍵是字符,因此數量有限,值是頻率。解決方案是O(N) - 一次掃描來填充地圖,一次掃描通過一張小地圖找到最高頻率。 –