Hay un algoritmo que lleva el nombre del algoritmo de Manacher, que es realmente rápido, un algoritmo de tiempo lineal.
Ver la referencia de Wikipedia
Postdata: Si está realmente familiarizado con el Algoritmo Z , encontrará que son similares.
Editar
Acabo de entender mal el significado del OP (pero no quiero eliminar la información del procedimiento. Es algo útil). Se refiere a la subsecuencia de palíndromo más larga de una cadena, por lo que la programación dinámica parece buena:
Fj , kFk , kFj , k= max (Fj , k + 1,Fj + 1 , k, 2 [Sj=Sk] +Fj + 1 , k - 1) ,j < k= 1=0,j>k
dónde
Fj , k denota la longitud de la subsecuencia de palíndromo más larga de
Sj . . ky
[ P]es el
soporte de Iverson , creo que es como
LCS .