Menu
CoddyTech

Find the First Occurrence in a String

Ricevi due stringhe, haystack e needle. Restituisci l’indice in haystack in cui inizia la prima occorrenza di needle, contando da 0. Se needle non compare mai in haystack, restituisci -1. Implementa la ricerca tu stesso, invece di chiamare una funzione di ricerca di sottostringhe integrata come find o indexOf.

Funzione

strStr(haystack: string, needle: string) → integer
haystackstring
il testo da cercare in
needlestring
la stringa da cercare
Restituisceinteger
l'indice in cui inizia la prima occorrenza di needle, oppure -1 se non ce n'è nessuna

Vincoli

  • 1 ≤ haystack.length ≤ 5 × 104
  • 1 ≤ needle.length ≤ 5 × 104
  • Entrambe le stringhe contengono solo lettere inglesi minuscole.
  • needle può essere più lunga di haystack. In tal caso non può essere presente e la risposta è -1.

Esempi

Input
haystack = "bananarama"needle = "ana"
Output
1
Spiegazione
Le lettere agli indici 1, 2 e 3 formano ana. Una seconda copia inizia all'indice 3 e si sovrappone alla prima, ma la risposta è la prima copia, quindi è 1.

lock icon+16 test nascosti all’invio

challenge icon

Per approfondire

Riesci a restituire ogni indice in cui inizia needle, incluse le occorrenze sovrapposte, sempre in tempo O(n + m)?

Ripristina il codice
def strStr(haystack, needle):
    # Scrivi il codice qui
Casi di test

Caso 1

Caso 2

Caso 3

Input

haystack = "bananarama"
needle = "ana"

Atteso

1