Menu
CoddyTech

Find the First Occurrence in a String

Du erhältst zwei Zeichenfolgen, haystack und needle. Gib den Index in haystack zurück, an dem das erste Vorkommen von needle beginnt, wobei ab 0 gezählt wird. Wenn needle nie in haystack vorkommt, gib -1 zurück. Implementiere die Suche selbst, anstatt eine eingebaute Teilzeichenfolgensuche wie find oder indexOf aufzurufen.

Funktion

strStr(haystack: string, needle: string) → integer
haystackstring
der zu durchsuchende Text
needlestring
die zu suchende Zeichenfolge
Gibt zurückinteger
der Index, an dem das erste Vorkommen von needle beginnt, oder -1, falls es keines gibt

Einschränkungen

  • 1 ≤ haystack.length ≤ 5 × 104
  • 1 ≤ needle.length ≤ 5 × 104
  • Beide Zeichenketten enthalten nur englische Kleinbuchstaben.
  • needle kann länger als haystack sein. Dann kann es nicht darin vorkommen, und die Antwort lautet -1.

Beispiele

Eingabe
haystack = "bananarama"needle = "ana"
Ausgabe
1
Erklärung
Die Buchstaben an den Indizes 1, 2 und 3 ergeben ana. Eine zweite Kopie beginnt bei Index 3 und überlappt die erste, aber die Antwort ist die erste Kopie, also ist sie 1.
challenge icon

Weiterführende Frage

Kannst du jeden Index zurückgeben, an dem needle beginnt, einschließlich überlappender Vorkommen, und das weiterhin in O(n + m) Zeit?

Code zurücksetzen
def strStr(haystack, needle):
    # Schreibe hier den Code

Test #1

Test #2

Test #3

Argumente

haystack = "bananarama"
needle = "ana"

Erwartete Ausgabe

1