class Solution:
def strStr(self, haystack: str, needle: str) -> int:
for i in range(len(haystack)+1):
for j in range(len(needle)+1):
if j == len(needle):
return i
if i+j == len(haystack): #防止越界
return -1
if haystack[i+j] != needle[j]: #有一位不符合
break
解法二:对解法一改进
一次循环即可,每次检测len(needle)长度的串
class Solution:
def strStr(self, haystack: str, needle: str) -> int:
for i in range(len(haystack)-len(needle)+1):
if haystack[i:i+len(needle)] == needle:
return i
return -1