0

假设我有一个 txt 文件,每一行代表一个字符串。有没有一些有效的方法来找出前 10 个频繁子串。

困难在于给定字符串的子字符串排列太大。给定一个N字符串长度,它有总C(N,0)+C(N,1)+..C(N,N)种类的子字符串。

================================================= [更新]

这个问题与“[a link] Algorithm to find the most common substrings in a string ”类似,但两者都不相同。不同之处在于我试图找出所有字符串中的前 10 个频繁子字符串,而它只是在 "[a link] 中找到一个字符串中最长的子字符串算法来查找字符串中最常见的子字符串以找到最常见的子字符串一个字符串" 这只是局部优化。

尽管通过“[a link]算法以查找字符串中最常见的子字符串”中的方法在所有字符串中不经常出现一个子字符串,但它可能是最频繁的。比如我有 10 个字符串,字符串最频繁 str1 sub_str1 --4 次
str2 sub_str2 -- 4 次 ..
str10 sub_str10

每个字符串中出现频率最高的子串不同,每个出现 4 次。有可能在所有字符串中都存在另一个名为 sub_minor 的子字符串,并且只出现 1 次。因此,这个 sub_minor 字符串出现频率最高,因为它出现了 10 次,超过了所有其他 sub_str 字符串。

all sub_str 都只是局部优化而不是全局优化,我的问题主要是全局优化,这与“[a link] Algorithm to find the most common substrings in a string ”不同

4

0 回答 0