1224得票7回答
乌科宁后缀树算法的通俗易懂解释

我感觉有点困难。我已经花了好几天时间来完全理解后缀树的构建,但由于我没有数学背景,许多解释对我来说是模糊的,因为它们开始过度使用数学符号。我找到的最好的解释是Fast String Searching With Suffix Trees,但他略过了一些要点,算法的某些方面仍然不清楚。 在St...

94得票7回答
后缀树和Trie树有什么区别?

我正在阅读关于“Tries”(字典树)和“Suffix Trees”(后缀树)的内容。虽然我已经找到了一个“Trie”的代码,但是我找不到一个“Suffix Tree”的例子。而且我感觉建立“Trie”的代码和建立“Suffix Tree”的代码是一样的,唯一的区别在于前者存储前缀,后者存储后...

58得票11回答
如何在iPython笔记本中调用使用argparse编写的模块

我正在尝试将BioPython序列传递给iPython笔记本环境中Ilya Stepanov实现的Ukkonen后缀树算法。 我在argparse组件上遇到了困难。 我以前从未直接使用过argparse。 如何在不重写main()的情况下使用它? 顺便说一下,这篇关于Ukkonen算法的文...

49得票5回答
使用后缀树查找字符串中最长回文字符串

我试图在一个字符串中找到最长的回文串。暴力解法需要O(n^3)的时间。我读到了用后缀树可以实现线性时间算法。我熟悉后缀树,也能够很好的构建它们。那么如何使用构建好的后缀树来找到最长的回文串。

36得票1回答
如何用线性时间构建后缀树?

构建后缀树,最坏情况下如果字符串中的所有字母都不同,复杂度会达到以下程度:n + (n-1) + (n-2) ... 1 = n*(n+1)/2 然而,根据http://en.wikipedia.org/wiki/Suffix_tree的说法,构建后缀树只需要O(n)的时间。那么我错过了什么吗?

34得票5回答
字符串分析。

给定一串操作序列:a*b*a*b*a*a*b*a*b是否有一种最佳划分方法以实现子字符串的重复利用。将其转换为:a*b*a*b*a*a*b*a*b => c*a*c,其中c = a*b*a*b然后发现:a*b*a*b => d*d,其中d = a*b一共将初始的8个操作减少到了这里描述的4个操...

28得票1回答
如何在后缀树中创建后缀链接以及何时创建?

能否给我一个关于如何在后缀树中创建后缀链接的例子,以及何时创建后缀链接?如果可以,请使用字符串ABABABC进行示例,或者选择更好的示例。 希望给出一些图片来说明每个步骤。 非常感谢。

27得票1回答
理解Ukkonen算法用于后缀树的原理

我正在使用Ukkonen算法构建后缀树,但是我不太理解作者对其线性时间复杂度的解释。 我已经学习了该算法并编写了代码,但是我使用的主要信息来源(下面链接的论文)在某些部分有点困惑,因此我不太清楚为什么该算法是线性的。 可以提供帮助吗?谢谢。 Ukkonen论文链接:http://www....

23得票1回答
如何使用Python库生成后缀树?

我需要一个能够构造后缀树和广义后缀树的Python库。你能向我推荐一些库吗?谢谢。

20得票3回答
真的很难理解后缀树

我已经搜索了有关后缀树的教程很长一段时间了。在SO上,我找到了两篇关于理解后缀树的文章:1,2。 但是我不能说我知道如何构建一个,哎呀。在Skiena的书《算法设计手册》中,他说: 由于线性时间后缀树构造算法是非平凡的,因此我建议使用现有的实现。 那么,后缀树的在线构造算法真的很难吗?有...