查找字典中包含的最长前缀

finding the longest prefix contained in a dictionary

本文关键字:前缀 包含 字典 查找      更新时间:2023-10-16

我正在实现Lempel-Ziv压缩,一个问题浮现在脑海中。

给定一个"字典"和一串字符。我希望能够计算字典中包含的最长前缀 og 字符串。

这是给定的字符串:

0 : AABB
1 : ABA
2 : AAAB

和查询字符串"AABBABA"我希望能够进行返回"0"的查找,这应该在时间上与前缀的长度线性地完成。

接下来,我希望能够在恒定时间内将新的前缀"AABBAB"添加到字典中。

是否有一种标准且简单的方法/算法来执行此操作?

我最初的想法是构建一个带有指针列表的标准 n 路树,然后搜索这个?

您描述的是一个简单的 trie 查找,除了即使有多余的字符,您也会返回叶节点。

不确定你在想 n 路树,但很可能它是完全相同的,因为它是显而易见的解决方案:v) .如果你想提高效率,你可以研究不同类型的尝试。