Menu
CoddyTech

Find the First Occurrence in a String

Vous obtenez deux chaînes, haystack et needle. Renvoyez l’indice dans haystack où commence la première occurrence de needle, en comptant à partir de 0. Si needle n’apparaît jamais dans haystack, renvoyez -1. Écrivez vous-même la recherche au lieu d’appeler une fonction intégrée de recherche de sous-chaîne telle que find ou indexOf.

Fonction

strStr(haystack: string, needle: string) → integer
haystackstring
le texte à rechercher dans
needlestring
la chaîne à rechercher
Renvoieinteger
l’index où commence la première occurrence de needle, ou -1 s’il n’y en a aucune

Contraintes

  • 1 ≤ haystack.length ≤ 5 × 104
  • 1 ≤ needle.length ≤ 5 × 104
  • Les deux chaînes contiennent uniquement des lettres minuscules de l’alphabet anglais.
  • needle peut être plus long que haystack. Il ne peut alors pas apparaître, et la réponse est -1.

Exemples

Entrée
haystack = "bananarama"needle = "ana"
Sortie
1
Explication
Les lettres aux indices 1, 2 et 3 forment ana. Une deuxième occurrence commence à l’indice 3 et chevauche la première, mais la réponse est la première occurrence, donc c’est 1.

lock icon+16 tests cachés à la soumission

challenge icon

Pour aller plus loin

Peux-tu renvoyer chaque index où needle commence, y compris les occurrences qui se chevauchent, toujours en O(n + m) ?

Réinitialiser le code
def strStr(haystack, needle):
    # Écrivez le code ici
Cas de test

Cas 1

Cas 2

Cas 3

Entrée

haystack = "bananarama"
needle = "ana"

Attendu

1