查找子字符串最大出现次数的算法

标签 algorithm

给定一个字符串 S,找到重复次数最多的子字符串的最佳算法是什么。

例如,在“assdssfssd”中,重复最大次数的是“ss”。

最佳答案

我可以看到构建一棵树来解决该特定问题。

有一个名义上的根节点。第一个角色是第一个 child 。在您的情况下,第二个字符是第一个字符 a -> s 的子字符。它还开始了根节点的新叶子。如果在添加节点时访问现有节点,则会增加其计数(初始值 1)。

一旦完成,您将访问树的每个节点以找到在最深级别具有最高计数的节点(因为如果“asdf”出现 5 次,那么“a”、“as”和“asd”至少出现5 次,根据定义)。

关于查找子字符串最大出现次数的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/377930/

相关文章:

c++ - 按 block 比较两个 vector 时如何避免重复

python - 示例程序大o值

c++ - 为STL编写算法函数

algorithm - 如何使用递归求解 T(n) = 5T(n/2) + O(nlogn)

algorithm - Dijkstra算法如何找到最短路径?

javascript - 无重复的笛卡尔积

algorithm - 插值搜索比二分搜索慢的例子是什么?

algorithm - 从蛮力解决方案中导出 LCS 的子解决方案表

algorithm - ocamlgraph中的Goldberg算法可以用于查找最小成本流图吗?

javascript - 2个数组之间的链接