算法找到最常出现的长度为 3 的字符串序列

Dan*_*inu 5 arrays algorithm data-structures

“给定多个名称数组,找到最常出现的长度为 3 的名称序列(长度为 3 的序列)(如果存在)”

例如:给定 3 个名称数组:

Ana John Maria
Paul
Sharon Ana John Maria Tiffany Ted
Run Code Online (Sandbox Code Playgroud)

输出将是,Ana John Maria因为该序列在第一个和第三个数组中遇到两次。

我似乎无法找到正确的解决方案。

有人能指出我正确的方向吗?也许这是一个众所周知的算法。谁能给我一个链接吗?谢谢

Mar*_*cin 4

将数组合并成类似于 trie 的树,其中每个节点不是单个字母,而是整个名称。这应该可以让您更轻松地查找和计算子序列。事实上,我强烈怀疑这个任务有一个标准算法,你可以查找一下。

更新:查看使用后缀树的算法: http: //en.wikipedia.org/wiki/Suffix_tree