我正在实施Lempel-Ziv压缩,并且会想到一个问题。
给出'字典'和一串字符。我希望能够计算字符串中包含的最长前缀og。
给出了字符串:
0 : AABB
1 : ABA
2 : AAAB
和查询字符串'AABBABA'我希望能够进行返回'0'的查找,这应该在时间线性上与前缀的长度完成。
接下来,我希望能够在常量时间内将新前缀“AABBAB”添加到字典中。
这样做有标准的,简单的方法/算法吗?
我最初的想法是使用指针列表构建一个标准的n路树,然后搜索它?
答案 0 :(得分:3)
您正在描述一个简单的trie查找,但即使有多余的字符,您也会返回一个叶子节点。
不确定你在使用n路树的想法,但很可能它完全相同,因为它是显而易见的解决方案:v)。如果你想提高效率,可以考虑不同类型的尝试。