Menu
CoddyTech

Find the First Occurrence in a String

Recibes dos cadenas, haystack y needle. Devuelve el índice de haystack donde comienza la primera aparición de needle, contando desde 0. Si needle nunca aparece en haystack, devuelve -1. Implementa la búsqueda tú mismo en lugar de llamar a una búsqueda de subcadenas integrada, como find o indexOf.

Función

strStr(haystack: string, needle: string) → integer
haystackstring
el texto en el que buscar
needlestring
la cadena que se busca
Devuelveinteger
el índice donde comienza la primera aparición de needle, o -1 si no hay ninguna

Restricciones

  • 1 ≤ haystack.length ≤ 5 × 104
  • 1 ≤ needle.length ≤ 5 × 104
  • Ambas cadenas contienen únicamente letras minúsculas del inglés.
  • needle puede ser más largo que haystack. Entonces no puede aparecer, y la respuesta es -1.

Ejemplos

Entrada
haystack = "bananarama"needle = "ana"
Salida
1
Explicación
Las letras en los índices 1, 2 y 3 forman ana. Una segunda copia comienza en el índice 3 y se superpone a la primera, pero la respuesta es la primera copia, así que es 1.

lock icon+16 pruebas ocultas al enviar

challenge icon

Para ir más allá

¿Puedes devolver todos los índices donde empieza needle, incluidas las copias superpuestas, y aun así hacerlo en O(n + m)?

Restablecer código
def strStr(haystack, needle):
    # Escribe el código aquí
Casos de prueba

Caso 1

Caso 2

Caso 3

Entrada

haystack = "bananarama"
needle = "ana"

Esperado

1