Самая длинная неперекрывающаяся повторяющаяся подстрока с использованием суффиксного дерева / массива (только алгоритм)

Мне нужно найти самую длинную неперекрывающуюся повторяемую подстроку в строке. У меня есть дерево суффиксов и массив суффиксов доступной строки.

Когда допускается перекрытие, ответ тривиален (самый глубокий родительский узел в дереве суффиксов).

Например для String = "acaca»

если перекрытие разрешено, ответ "ас» но когда перекрытие не допускается, ответ "переменный ток» или же "ча».

Мне нужен только алгоритм или идея высокого уровня.

П.С .: Я пытался, но в Интернете нет четкого ответа.