Escribe una función que devuelve el palíndromo más largo en una cadena dada

por ejemplo, "ccddcc" en la cadena "abaccddccefe"

Pensé en una solución pero se ejecuta en O (n ^ 2) tiempo

Algo 1:

Steps: Es un método de fuerza bruta

Tener 2 para bucles
for i = 1 a i menor que array.length -1
for j = i + 1 to j menor que array.lengthe esta manera, puede obtener una subcadena de cada combinación posible de la matrizTiene una función de palíndromo que comprueba si una cadena es palíndromoso para cada subcadena (i, j) llame a esta función, si es un palíndromo almacénelo en una variable de cadena Si encuentra la siguiente subcadena de palíndromo y si es mayor que la actual, reemplácela por la actual. Finalmente, su variable de cadena tendrá la respuesta

Problemas: 1. Este algo se ejecuta en tiempo O (n ^ 2).

Algo 2:

Revierta la cadena y guárdela en una matriz diferente Ahora encuentre la subcadena coincidente más grande entre la matriz Pero esto también se ejecuta en tiempo O (n ^ 2)

¿Pueden ustedes pensar en algo que se ejecute en un mejor momento? Si es posible O (n) tiempo

Respuestas a la pregunta(21)

Su respuesta a la pregunta