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 buclesfor 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