这是一个面试问题:http://www.geeksforgeeks.org/find-the-k-most-frequent-words-from-a-file/
但是这个问题需要更多的东西:GIVEN PREFIX
例如,给出" Bl"返回最频繁的单词,例如" bloom,blame,bloomberg"等
因此必须使用TRIE。但是,如何有效地构建堆?在运行时为每个前缀构造堆是不对的或实际的。什么是一个很好的解决方案。
[假设此TRIE或数据结构是静态的,预构建]
谢谢!
答案 0 :(得分:0)
保留文件中出现的所有字词及其计数。所以现在如果它要求返回带有前缀" BI"的所有单词,那么你可以使用形成的trie有效地完成它。但是,由于您有兴趣使用前缀" BI"来提供最常出现的单词,您现在可以使用最小堆来有效地给出答案,就像在您链接到的帖子中所做的一样
另请注意,由于特里的空间使用量会变得非常大,因此您可以建议采访者使用Ternary search tree代替特里。