Удвоим строку, тогда палиндром, являющийся ответом, будет подстрокой удвоенной строки. Найдем для каждой позиции длину максимального палиндрома с центром в этой позиции. Уменьшим длину палиндрома на минимальное четное число так, чтобы она стала не больше n, так как ответ не может превышать n. Заметим, что можно выбрать такой циклический сдвиг, чтобы палиндром такой длины с центром в этой позиции являлся подстрокой этого циклического сдвига. Обновим этим значением ответ.
Если для каждого центра увеличивать длину палиндрома на 1, пока он остается палиндромом, получится решение за O(n2), которое проходит первые три группы тестов.
Если посчитать полиномиальные хеши для прямой и развернутой строки, и для каждого центра искать длину палиндрома двоичным поиском, сверяя хеши прямого и развернутого палиндрома, получится решение за . Из-за большого количества операций взятия по модулю это решение работает довольно медленно, поэтому оно могло не проходить последнюю группу тестов. Если использовать полиномиальный хеш по модулю 264, то решение должно получить вердикт wrong answer из-за тестов со строкой Туэ-Морса.
Если для нахождения максимальных длин палиндромов для всех позиций воспользоваться алгоритмом Манакера, асимптотика времени работы программы составит O(n). Такое решение набирает 100 баллов.