10得票1回答
在大数据集中查找最长公共子串

在过去的几天里,我进行了大量研究,读了很多东西,现在比以前更加困惑了。如何在一个大数据集中找到最长的公共子字符串?这个算法需要连续运行,以从该数据集中删除重复内容(长度各不相同)。所谓大数据集是指大约100MB的文本。 后缀树?后缀数组?Rabin-Karp算法?哪种方法最好?是否有可以帮助...

11得票4回答
Python中寻找最长重复字符串的高效方法(来自《编程珠玑》)

来自《编程珠玑》第15.2节 这里可以查看C代码:http://www.cs.bell-labs.com/cm/cs/pearls/longdup.c 当我使用后缀数组在Python中实现时:example = open("iliad10.txt").read() def comlen(p...

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

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

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

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

14得票7回答
寻找最长重复子串

如何在解决这个问题时达到最佳效果? 我被建议使用后缀树,这是最好的方法吗?

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

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

10得票1回答
Kasai算法构建LCP数组的实际示例

我正在尝试完成Coursera上的字符串算法课程,并且在构建LCP数组的方法上遇到了困难,该方法在此视频中描述:https://www.coursera.org/learn/algorithms-on-strings/lecture/HyUlH/computing-the-lcp-array ...

16得票2回答
使用后缀树进行近似子字符串匹配

本文讨论了近似子字符串匹配技术,它们利用后缀树来提高匹配时间。每个答案都涉及不同的算法。 近似子字符串匹配试图在字符串T中找到一个子串(模式)P,最多允许k次不匹配。 要学习如何创建后缀树,请点击这里。然而,一些算法需要额外的预处理。 我邀请大家添加新的算法(即使不完整)并改进答案。

14得票3回答
寻找C#中的后缀树实现?

我已经为研究项目实现了基本搜索。 我正在尝试通过构建后缀树使搜索更加高效。 我对Ukkonen算法的C#实现很感兴趣。 如果存在这样的实现,我不想浪费时间去开发自己的算法。

8得票6回答
给定一个字符串,找出其中所有在字典中的排列组合。

这是一道面试题: 给定一个字符串,找出所有在字典中的排列组合。 我的解决方案: 将字典中的所有单词放入后缀树中,然后在树中搜索字符串的每个排列组合。 搜索时间为 O(n),其中 n 是字符串的大小。但是该字符串可能有 n! 种排列组合。 如何提高效率?