使用后缀树/数组的最长非重叠重复子串(仅限算法)

Gen*_*mer 11 algorithm substring suffix-tree suffix-array

我需要在String中找到最长的非重叠重复子字符串.我有可用字符串的后缀树和后缀数组.

当允许重叠时,答案是微不足道的(后缀树中最深的父节点).

例如对于String ="acaca"

如果允许重叠,则回答是"aca"但是当不允许重叠时,回答是"ac"或"ca".

我只需要算法或高级想法.

PS:我试过,但我在网上找不到明确的答案.

Per*_*ins 1

最简单的解决方案是暴力攻击。您有一个算法来查找最长的允许重叠的字符串,使用它,检查该答案是否有重叠,如果有,找到第二长的字符串,检查并查看它是否有重叠,依此类推。这将其简化为现有的搜索算法,然后是正则表达式计数操作。