2

重複の可能性:
配列内で繰り返される最大の要素を見つける

1 つの単語の出現率が 51% 以上の単語ストリームがある場合、文字列のみの場合に最も頻繁に使用される単語を見つけるにはどうすればよいでしょうか。int を一度にメモリに格納して、それを見つけるのに役立てることができます。

これはストリームであるため、各単語に一度しかアクセスできません。

特定の言語は必要ありませんが、これは主に Java を念頭に置いたものです。

また、私はコードを求めているのではなく、アイデアだけを求めています。:)

4

1 に答える 1

0

完全を期すために、私が指摘した複製で提示されたアルゴリズムの Java での実装を例に適用します。

public static void main(String[] args) throws InterruptedException {
    List<String> list = Arrays.asList("a", "b", "c", "a", "d", "e", "a", "a", "b", "b", "a");
    int counter = 0;
    String mostFrequentWord = "";
    for (String streamed : list) {
        if (streamed.equals(mostFrequentWord)) {
            counter++;
        } else if (counter == 0) {
            mostFrequentWord = streamed;
            counter = 1;
        } else {
            counter--;
        }
    }
    System.out.println(mostFrequentWord);
}
于 2012-07-18T18:33:28.203 に答える