найти длинные повторяющиеся подстроки в массивной строке

Я наивно полагал, что мог бы создать три суффиксную запись, в которой я веду счетчик посещений для каждого узла, и тогда самые глубокие узлы с числом больше одного - это набор результатов, который я ищу.

У меня действительно очень длинная строка (сотни мегабайт). У меня около 1 ГБ оперативной памяти.

Вот почему создание суффикса с подсчетом данных слишком неэффективно для меня. ЦитироватьСуффикс дерево Википедии:

Хранение дерева суффиксов строки обычно требует значительно больше места, чем хранение самой строки.

Большой объем информации в каждом ребре и узле делает дерево суффиксов очень дорогим, потребляя от десяти до двадцати раз больше объема памяти исходного текста в хороших реализациях. Суффиксный массив уменьшает это требование в четыре раза, и исследователи продолжают находить меньшие структуры индексации.

И это были комментарии Википедии о дереве, а не три.

Как я могу найти длинные повторяющиеся последовательности в таком большом количестве данных и в разумные сроки (например, менее часа на современном настольном компьютере)?

(Некоторые ссылки в Википедии, чтобы люди не публиковали их как «ответ»:Алгоритмы на строках и особенноСамая длинная повторяющаяся проблема с подстрокой ;-))

Ответы на вопрос(9)

Ваш ответ на вопрос