Para una cuerda de longitud L , quiero encontrar la subcadena más larga que aparece n (n < L) o más veces en THS cadena.subcadena más larga que aparece n veces
Por ejemplo, la subcadena más larga que aparece 2 o más veces en "BANANA" es "ANA", una vez que comienza en el índice 1 y una vez más comienza en el índice 3. Las subcadenas pueden superponerse.
En la cadena "FFFFFF", la cadena más larga que aparece 3 o más veces es "FFFF".
El algoritmo de fuerza bruta para n = 2 seleccionará todos los pares de índices en la cadena, y luego continuará hasta que los caracteres sean diferentes. La parte ejecutable toma O (L) y el número de pares es O (L^2) (los duplicados no están permitidos pero ignoro eso) por lo que la complejidad de este algoritmo para n = 2 sería O (L^3). Para valores mayores de n, esto crece exponencialmente.
¿Hay un algoritmo más eficaz para este problema?
excelente respuesta (en contra de su nombre de usuario)! –