【问题标题】:Search random char text file for words在随机字符文本文件中搜索单词
【发布时间】:2015-05-20 21:59:19
【问题描述】:

这是我在这里的第一个问题,所以请善待:)

我有一个 60MB 的随机字符文本文件,没有空格、制表符、换行符或任何可确定的模式。我想我需要这个文本文件中的一个词,虽然我不知道如何搜索它。我在想你可以使用字典并扫描文件,尽管这可能需要一段时间,而且我不知道如何真正做到这一点,因为没有空格或任何东西可以将单词与字符分开。

感谢任何帮助或想法。

我还发现了 this 线程可能会有所帮助,但我真的不确定,因为我不清楚答案,我认为我们的问题略有不同。

任何基本代码/伪代码也有帮助,不用担心语言:)

【问题讨论】:

  • 您只是想看看文本文件中有没有英文单词?或者您是否正在寻找某个单词的实例?我认为 strpos() 将是一个很好的起点。
  • 是的,我只是想在文本文件中查找所有英文单词。谢谢,我会查一下。

标签: string search random char words


【解决方案1】:

您是否考虑过使用trie 数据结构?构建字典值的 trie,然后开始逐个字符地扫描文本文件。您需要维护一组候选词片段以及它们在 trie 中将您引导到的节点(到目前为止)。对于读取的每个字符,遍历候选列表,如果新字符导致 trie 中的有效节点,则候选保留在列表中并且节点信息得到更新。否则将其从列表中删除。如果它是一个单词节点,则将该单词添加到您找到的单词的解决方案集中。如果它是叶节点,则将其从候选集中删除,否则保留它,因为某些词是其他词的子串——例如,“under”本身就是一个词,但在 trie 中也可能导致您进入“underwater”,“地下”或“失败者”等等。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-18
    • 2016-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-01
    相关资源
    最近更新 更多