Продолжая свой единственный пример:
12345123451234512345
возвращает 12345
Я думаю, что вы хотите найти самую длинную возможную иглу, которая повторяется для завершения стога сена, то есть 1212121212
=> 12
, 444
=> 4
и т. Д.
Самое простое решение - выбрать первый символ и выполнить сравнение строк для сравнения совпадений.Если в какой-то момент у вас есть несоответствие, выберите первые два символа и выполните сравнение всей строки и т. Д., Пока размер вашего окна не станет больше половины строки.
Сложность должна быть O (n ^ 2)
Вы можете оптимизировать размер окна, который вы выбираете, основываясь на длине строки, т.е. размеры окна могут быть только делителями длины строки.