Алгоритм Манакера
Версия от 11:22, 10 марта 2016; Rthakohov (обсуждение | вклад)
| Задача: |
| Пусть дана строка . Требуется найти - длина наибольшего палиндрома нечетной длины с центром в позиции и - аналогично для палиндромов четной длины для всех от 1 до . |
Наивный алгоритм
Идея
Опишем сначала наивный алгоритм решения задачи. Чтобы посчитать ответ для позиции , будем на каждом шаге увеличивать длину палиндрома с центром в и убеждаться, что рассматриваемая строка не перестала быть палиндромом, либо не произошел выход за границы массива. Очевидно, что такой алгоритм будет работать за
Псевдокод
// — исходная строка // — массивы для записи ответа function for