suffix-tree

    1热度

    2回答

    我有一个复杂的字符串操作问题。 我有一个字符串,我将有循环,以及我需要识别和列出的循环。 'abcabcabcabcabcdkkabclilabcoabcdieabcdowabcdppabzabx' 以下是可能的模式 - 不使用 ABC> 实际指标 - > 0,3,6,9,12,15,17,...... (对于重复串occurence指数), 0,3,6,9(unique_occurence指

    0热度

    1回答

    我可怎么办下一步操作,用绳子S的后缀树,谁的顶点数量为O界函数(| S |): 是-K - 子字符串(r) - 检查字符串r是否为s的k-子字符串,其中k-子字符串定义如下: s的子字符串r定义为k-字符串,如果有一个分区s到子字符串,其中: r = x1x2 ... xk; xi = s的子串。例如:s = whitething,r = within,r是s的3个子字符串。 我需要该操作来处理O

    0热度

    2回答

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

    0热度

    1回答

    我正在尝试在C++中为编程任务实现后缀trie。现在我认为我有正确的想法,但是我一直在发生分段错误,而且我一直无法找到造成它的原因。 对于这个任务,我们鼓励使用VIM /其他一些基本的文本编辑器,并从控制台编译程序。尽管如此,我已经下载了CLion来尝试和调试代码,所以我可以找到错误。 现在,在克利翁运行时,我得到的消息 terminate called after throwing an ins

    1热度

    1回答

    如果是这样,有人可以解释后缀树中的后缀链接的目的是为了确切的字符串匹配吗?

    3热度

    2回答

    我正在编写一个在C++中实现后缀trie的程序。我试图声明一个没有参数的递归函数,但是需要将一个指针传递给它自己。 我在cpp文件,其中节点是先前声明的数据结构从而限定它 public: string longestRepeat(Node*); 在头文件 ,和 string Trie::longestRepeat(Node* start = &nodes[0]){ stri

    2热度

    1回答

    从数据结构与算法分析Java中,魏斯匹配: 维斯写道: 在树叶中,我们使用后缀开始的索引(如在后缀数组中) 在内部节点中,我们存储从根开始匹配的常用字符数,直到内部节点;这个数字代表字母深度。 我的问题:给定的输入字符串(例如“香蕉”)和后缀树的隐式表示,将好的算法用于字符串搜索是什么样子?我见过的算法假定树的不同表示。我想做子串搜索而不转换成不同的树形表示。

    0热度

    2回答

    我在下面看到完美的程序。按我来说,它的时间复杂度是nlogn,其中n是String的长度。 n用于存储不同的字符串,nlog用于排序,n用于比较。所以时间复杂度是nlogn。 空间复杂度为n用于存储n个子字符串 我的问题是可以进一步优化吗? public class LRS { // return the longest common prefix of s and t p

    2热度

    3回答

    中的所有重复模式我有一个问题,我必须找到句子中存在的所有重复模式。 例子:'camel horse game camel horse gym camel horse game' # This is the sanitized string as I will cleanup anything other than words before it. ['camel horse game', 0, 3

    0热度

    1回答

    我正在处理后缀树。据我所知,我已经正确运行了Ukkonen的算法,可以从任意数量的字符串中构建通用后缀树。我现在试图实现一个find_longest_common_substring()方法来做到这一点。为了这个工作,我知道我需要在树中的所有字符串之间找到最深的共享边(字符深度而不是边),并且我一直在挣扎几天来获得遍历权。 现在我在C++中有以下内容。我会尽量提供所有代码,但对于上下文,我将每个节