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.

lock icon+16 versteckte Tests beim Einreichen

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
Testfälle

Fall 1

Fall 2

Fall 3

Eingabe

haystack = "bananarama"
needle = "ana"

Erwartet

1