【发布时间】:2016-11-30 04:00:22
【问题描述】:
我正在尝试解决一个问题,我给出了一个文本文件,其中包含单词后跟换行符
我需要编写一个函数,它将输入作为字符串,如果它是一个有意义的单词,则应该返回输出 true,否则返回 false。
我这样做的尝试是遍历文本文件并维护 words 的哈希值。如果我给定的输入是一个存在于哈希中的单词,我将返回 true,否则返回 false。但是哈希的空间复杂度为 O(n),我们还能如何实现这一点。
请帮我解决。
【问题讨论】:
-
“请帮助我解决问题,不要因为不提供我尝试过的代码而苛刻。”不。表现出一些努力。
-
如果你想从一个文本文件中学习词汇,那很好,你不能做得比 O(|V|) 空间复杂度更好,其中 |V|是你的词汇量。
-
先显示代码否则得不到帮助
-
"但是哈希的空间复杂度为 O(n)" 是的。或者每次需要时都读取文件(时间复杂度为 O(n))。空间或时间,选择一个。 (Trie 介于两者之间,如果你有一个好的库,那么可以选择,但本机不支持)
-
您还可以查看有向无环词图 (dawgs),它比尝试的内存效率更高,但更难创建和维护:en.wikipedia.org/wiki/…。另一方面,将
yawlwordlist 中的 260,000 个单词存储到标准 Python 集中只需要不到一秒的时间,而且它对我的计算机 RAM 使用率只有很小的影响。在大多数情况下,显而易见的解决方案是完全足够的,只需要大约 2 或 3 行代码。
标签: algorithm data-structures hashtable trie