Загрузка [MathJax]/jax/output/HTML-CSS/fonts/TeX/fontdata.js
 

print2. Палиндром

Задача на динамическое программирование. Сначала необходимо построить таблицу T, в которой в ячейке T[i,j] хранится минимальное количество добавляемых символов к строке s[ij] для получения палиндрома. T[i,j] , если s[i]=s[j], T[i,j]\ =\ min(T[i,j-1],T[i+1,j])\ +\ 1 если s[i]≠s[j]. Выполняя обратную трассировку по таблице T легко найти палиндром-результат. "Жадное" частичное решение, выполняющее анализ строки одновременно слева и справа и добавляющее в результат меньший из концов в случае несовпадения, дает 15 баллов.
loading