小空间下的快速最长公共扩展
数据结构与算法
2016-07-25 v1
摘要
本文研究最长公共扩展(LCE)问题:计算 (其中 )的任意两个后缀之间最长公共前缀的长度 。我们提出了两种基于(Karp-Rabin)指纹和采样的快速且节省空间的解决方案。我们的第一个数据结构利用了当用作Karp-Rabin哈希函数模数时的梅森素数性质,占用 位空间。第二个结构适用于任意素数模数,占用 位空间( 为内存字大小)。两种结构都支持 时间提取任意长度为 的文本子串、高概率下 时间的LCE查询,并且可以在最优的 时间内构建。在第一种情况下,我们的结果是首个表明在仅使用存储文本所需空间之上 个字的条件下,能够以 时间回答LCE查询。我们的结果在空间占用、查询时间和预处理时间上改进了现有最优水平,并且非常实用:我们给出了一个在实践中非常快速且节省空间的C++实现。
引用
@article{arxiv.1607.06660,
title = {Fast Longest Common Extensions in Small Space},
author = {Alberto Policriti and Nicola Prezza},
journal= {arXiv preprint arXiv:1607.06660},
year = {2016}
}