【发布时间】:2012-02-04 10:04:54
【问题描述】:
面试题:
找出书中最常用的词。
我的想法:
使用哈希表,遍历并标记哈希表。
如果知道书的大小,如果发现任何单词被使用> 50%,那么在接下来的遍历中跳过任何新单词,只计算旧单词。如果书的大小不知道怎么办?
是O(n)和O(n)的时间和空间。
有更好的想法吗?
谢谢
【问题讨论】:
-
更改了标签,如果不合适请告诉我。似乎不是特定语言的问题。
-
散列是很好的启发式方法,但它没有得到准确的答案(实际上两个字符串可能散列到相同的整数)另外,如果你想找到最频繁的单词,我认为你应该跳过单词喜欢
the, then,...,因为它们很可能会出现频率最高,但这对每个人来说都不是好消息,因为这本书有the作为最频繁出现的词。 -
user1002288,你在这个线程上得到了很多不好的建议。几乎所有答案都来自实际/实施的角度,这可能不是面试官想要的。您可能想从理论的角度来看待这个问题。如果你在cstheory.stackexchange.com 上问这个问题,你可能会得到更好的答案。
标签: python algorithm data-structures hash