Algorithmus zwanzig Tage
vierzehnter Tag
Implementieren Sie strStr().
Implementieren Sie die Funktion strStr().
Finden Sie anhand der beiden Saiten „Heuhaufen“ und „Nadel“ die erste Position der Saite „Nadel“ in der Zeichenfolge „Heuhaufen“ (der Index beginnt bei 0). Gibt -1 zurück, wenn nicht vorhanden.
veranschaulichen:
Was sollen wir zurückgeben, wenn die Nadel eine leere Zeichenfolge ist? Das ist eine gute Frage, die man in einem Vorstellungsgespräch stellen sollte.
Für diese Frage sollten wir 0 zurückgeben, wenn die Nadel ein leerer String ist. Dies entspricht der Definition von strstr() in C und indexOf() in Java
.Beispiel 1:
Eingabe: haystack = „hello“, Needle = „ll“ Ausgabe: 2 Beispiel 2:
Eingabe: haystack = „aaaaa“, Needle = „bba“ Ausgabe: -1 Beispiel 3:
Eingabe: Heuhaufen = "", Nadel = "" Ausgabe: 0
Hinweis:
1 <= haystack.length, Needle.length <= 104 haystack und Needle
bestehen nur aus englischen Kleinbuchstaben
Autor: LeetCode
Link: https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/xnr003/
int strStr(string haystack, string needle) {
int len_H = haystack.size();
int len_N = needle.size();
if(len_N==0) return 0;
int i=0;
int j=0;
while(i<len_H && j<len_N){
if(haystack[i]==needle[j]) {
i++;j++;}
else{
i=i-j+1;
j=0;
}
}
if(j==len_N) return (i-j);
return -1;
}