如何找到一个词流中最常说的一句话? [重复](How to find the most freq

2019-09-19 17:16发布

可能重复:
发现最大重复数组中的元素

如果有一个字流,与具有51%以上的发生率一个字,我们怎么能找到,如果只字符串最频繁的字,和一个int可以同时存储在存储器中,以帮助我们找到它。

我们只能单次访问每一个字,因为这是一个流。

没有特定的语言是必要的,但是这主要是打算与Java的初衷。

另外我不要求代码,只是这个想法。 :)

Answer 1:

为了完整起见,在提出的算法的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);
}


文章来源: How to find the most frequent word in a word stream? [duplicate]