我有一个文本文件和字典。该字典由一系列长度为8个字符的单词组成。我遍历文本文件并在每8个字符(“滑动窗口”)中搜索字典。目前,我使用Python字典数据结构作为查找表。它具有平摊查找时间为0(1),但我想知道是否存在更快的算法/数据结构,可以利用问题的特定性质/结构。
你可以尝试使用Aho-Corasick多模式匹配。它使用Trie构建有限状态机,并广度优先搜索最长前缀,该前缀也是字典字符串的后缀的第一次出现。你可以在https://phpahocorasick.codeplex.com中尝试我的PHP实现。它还增强了算法以搜索通配符。