suffix-array

    1热度

    1回答

    我一直收到编译器错误,执行后缀数组Arrays.sort。 我收到以下错误: 一个不能被解析为一个变量 语法错误令牌“”。预计 语法错误令牌“ - ”, - 预期 一个不能被解析为一个变量 B不能被解析为一个变量 在下面的代码: import java.util.*; public class SuffixArray { // sort suffixes of S in O(n*l

    3热度

    1回答

    有人可以解释如何从后缀数组构造LCP的代码工作? suffixArr[]是一个数组,使得suffixArr[i]在后缀字符串中保留索引值,该后缀的排名为i。 void LCPconstruct() { int i,C[1001],l; C[suffixArr[0]] = n; for(i=1;i<n;i++) C[suffixArr[i]] = suf

    0热度

    2回答

    查找最长重复子串的算法公式如下 1)build the suffix tree 2)find the deepest internal node with at least k leaf children 但我不明白为什么这个工作正常,所以基本上是什么让这个算法正确?还有,我发现这个算法说,在O(n)中找到重复的子字符串,其中n是子字符串的长度,这对我也不是很清楚!让我们考虑下面的树,这里最长的重

    0热度

    1回答

    我已经构造了一个由ArrayList实现的后缀数组。我想用这个列表在后缀数组中搜索后缀。 为此,我已经整理了列表并使用二进制搜索,但“搜索”功能不断返回-1 我不知道我在做什么错在这里。我已经重写了Hashcode并且也等于。 我也改变了“等于”默认定义,但我还是继续得到同样的输出 import java.util.ArrayList; import java.util.Collections;

    1热度

    1回答

    我想通过qsort()排序字符串的后缀,但没有得到排序列表。 我该怎么办? 这里是我做了什么: char str[MAXN]="banana", *a[MAXN]; for(i=0;i<strlen(str);i++) a[i]=&str[i]; //a[] points to suffixes starting qsort(a, n, sizeof(char *), compa

    1热度

    1回答

    我正在读关于DC3的文章来构造后缀数组。 我想知道为什么DC3不能作为DC2应用,以便计算速度更快?

    1热度

    1回答

    我想了解Karkkainen,P. Sanders的线性时间后缀数组创建算法的实现。算法的细节可以找到here。 我设法理解整体概念,但未能与提供的实现相匹配,因此无法清楚地理解它。 这里是最初的代码路径令我困惑。 作为每纸:N0,N1,N2表示三联体编号开始在为i mod 3 =(0,1,2) 由于每个代码:N0 =(N + 2)/ 3中,n1 = (n + 1)/ 3,n2 = n/3; =>

    1热度

    1回答

    我使用this program来计算后缀数组和最长公用前缀。 我需要计算两个字符串之间最长的公共子串。 为此,我连接字符串,A#B,然后使用this algorithm。我有后缀数组sa[]和LCP[]数组。 最长的公共子串是最大值LCP[]数组。 为了找到子字符串,唯一的条件是在通用长度的子字符串中,第一次出现在字符串B中的那个应该是答案。 为此,我保持LCP []的最大值。如果LCP[curr

    1热度

    1回答

    如何计算后缀数组的LCP数组?它不一定是最高效的。 O(n log n)或O(n)会做。如果可能,相对容易编码。

    0热度

    1回答

    我有大约5000万个字符串的集合,每个字符串都有大约100个字符。我正在寻找非常高效(运行时间和内存使用情况)的通用后缀树实现。 我已经试过https://github.com/npgall/concurrent-trees但它需要大量的内存事件,尽管运行时间很有效率。 250万字符串的长度为100.它已经花费了50GB的内存。