|Búsqueda de patrón KMPMaster
Ejercicio00:00

¿Quieres un reto mayor?

Resuelve en 20:00

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 un array con los índices de inicio (base 0) de cada ocurrencia. Las ocurrencias pueden solaparse.

Cómo funciona KMP

  1. 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.
  2. Recorre el texto usando la tabla para evitar retroceder, logrando O(n + m) en lugar de O(n × m).

Ejemplos

kmpSearch("abcabcabc", "abc")  // [0, 3, 6]
kmpSearch("hello", "ll")       // [2]
kmpSearch("aaaaaa", "aa")      // [0, 1, 2, 3, 4]
kmpSearch("abcdef", "xyz")     // []
kmpSearch("aaaa", "a")         // [0, 1, 2, 3]

Restricciones

  • 0 <= text.length <= 10_000
  • 1 <= pattern.length <= 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 export al final del archivo.
  • Se recomienda evitar el uso de inteligencia artificial para que realmente tú practiques los ejercicios.

Puedes usar console.log() para depurar. Los resultados aparecen en la Consola de salida, no en el navegador.

Inicia sesión para reaccionar
Inicia sesión para reaccionar
Búsqueda de patrón KMP — Master | Coding Challenges · Coding Challenges