info
Importante: Para que se registre el resultado tienes que iniciar sesión.
Búsqueda de patrón KMP
Master100 pts·Algoritmos
Enunciado
Búsqueda de patrón KMP
Implementa el algoritmo de Knuth-Morris-Pratt (KMP) para encontrar todas las posiciones donde un patrón aparece dentro de un texto.
Devuelve una lista con los índices de inicio (base 0) de cada ocurrencia. Las ocurrencias pueden solaparse.
Cómo funciona KMP
- Construye la tabla de fallos (
failure function) a partir del patrón. Esta tabla indica cuántos caracteres del patrón pueden reutilizarse al encontrar una falla. - Recorre el texto usando la tabla para evitar retroceder, logrando O(n + m) en lugar de O(n × m).
Ejemplos
kmp_search("abcabcabc", "abc") # [0, 3, 6]
kmp_search("hello", "ll") # [2]
kmp_search("aaaaaa", "aa") # [0, 1, 2, 3, 4]
kmp_search("abcdef", "xyz") # []
kmp_search("aaaa", "a") # [0, 1, 2, 3]
Restricciones
0 <= len(text) <= 10_0001 <= len(pattern) <= 1000- Si el texto está vacío, retorna
[]. - Ambas cadenas contienen solo caracteres ASCII imprimibles.
Restriccionesexpand_more
- Dificultad: Master
- Completa todos los test cases para obtener los 100 puntos.
- No modificar la línea
exportal final del archivo. - Se recomienda evitar el uso de inteligencia artificial para que realmente tú practiques los ejercicios.
Puedes usar print() para depurar. Los resultados aparecen en la Consola de salida, no en el navegador.
Inicia sesión para reaccionar
Inicia sesión para reaccionar