Вот проблема (6.7 ch6) из книги Алгоритмов (по Вазирани), которая немного отличается от классической проблемы, что поиск самого длинного палиндрома. Как я могу решить эту проблему?
Подпоследовательность является палиндромной, если она то же самое, читайте слева направо или справа налево. Например, Последовательность
A,C,G,T,G,T,C,A,A,A,A,T,C,G
имеет много палиндромных подпоследовательностей, включая
A,C,G,C,A
иA,A,A,A
(с другой стороны, подпоследовательностьA,C,T
не является палиндромным). Разработать алгоритм, который принимает последовательностьx[1 ...n]
и возвращает (длину) длинная палиндромная подпоследовательность. это время работы должно бытьO(n^2)