我有一个文本文件和字典。该词典由一个完整的8个字符长的单词列表组成。我浏览文本文件并每8个字符搜索字典("滑动窗口")。
目前,我使用python词典数据结构作为查找表。它的摊销时间为0(1),但我想知道是否存在使用问题的特定性质/结构的更快的算法/数据结构。
答案 0 :(得分:1)
您可以尝试aho-corasick多模式匹配器。它构造了一个有限状态机,其中trie和widthth-first搜索第一次出现的最长前缀,也就是字典字符串的后缀。您可以在https://phpahocorasick.codeplex.com的php中尝试我的实现。它还增加了搜索通配符的算法。
答案 1 :(得分:0)
我认为您可以使用全文搜索来执行此操作,例如Apache Sorl,Elastich Search。
但您可以将http://lunrjs.com/用于客户端。