8得票1回答
在后缀树中匹配具有重叠前瞻的LZ77/LZSS算法

背景:我有一个通用LZSS后端的C++实现(可在此处找到)。我在此版本中使用的匹配算法非常简单,因为它最初是为了压缩相对较小的文件(最多64kB)而设计的,用于相对古老的硬件(特别是Mega Drive/Sega Genesis,在其中64kB是主RAM的全部内容)。 然而,我的实现有些文件...

8得票4回答
JavaScript中的后缀树?

有没有一个很好的JavaScript后缀树实现?能够接受一个字符串(和分隔符),并创建适当的后缀树。

8得票9回答
在C++中高效的字符串/模式匹配(后缀数组、字典树、后缀树)?

我正在寻找一种高效的数据结构来处理大量字符串的字符串/模式匹配。我已经了解了Trie树、后缀树和后缀数组,但是迄今为止我还没有找到一个预先实现好的C/C++版本(而且自己实现似乎很困难且容易出错)。但我仍然不确定后缀数组是否真的适合我的需求... 我尝试过libdivsufsort和esaxx...

8得票1回答
从字符串中查找子串

输入:字符串S = AAGATATGATAGGAT。 输出:最大重复子串,例如GATA(在位置3和8处),GAT(在位置3、8和13处)等等... 最大重复子串是一个在S中出现k>1次的子串t,如果将t向左或向右扩展,则它出现的次数少于k。 内部节点的叶子后代是后缀,每个后...

8得票3回答
一个短小的Java后缀树实现及其使用方法?

我正在寻找一个简短、简单的Java后缀树建立/使用算法。目前我找到的最好的算法在Semantic Discovery Toolkit中,但是实现有几千行代码,涉及多个类。理想情况下,实现应该尽可能简短,不超过几百行代码。请问有这样的实现吗?

7得票4回答
优化构建所有子字符串的Trie树

我正在解决一个trie相关的问题。有一个字符串集合S。我要为S中每个字符串的所有子串创建一个trie树。我正在使用以下例程: String strings[] = { ... }; // array containing all strings for(int i = 0; i < s...

7得票2回答
如何从后缀树中删除子字符串?

我查阅了很多文献,但没有找到关于如何从后缀树中删除或插入子字符串的信息。只有Ukkonen和McCreight算法用于构建树。最差的方法是在删除或插入子字符串后重建整个后缀树。但我认为有更好的方法。 例如(位置从0开始计数): 我有一个带有“abcdef”的后缀树,我需要删除1到3号位置上的字...