实现strstr()
创建两个指针,指针之间的长度等于needle字符串的长度,通过遍历字符串,进行比较即可
class Solution:
def strStr(self, haystack: str, needle: str) -> int:
# 空串或者haystack长度小于needle,返回0
if not needle and len(haystack) < len(needle):
return 0
length = len(haystack)-len(needle)+1
# 设置两个指针i, j分别指向要判断的haystack子串的开头和结尾
for i in range(0, length): # i的起始位置是0
for j in range(i+len(needle)-1, len(haystack)): # i到j的字符串长度要等于needle的字符串长度
if haystack[i:j+1] == needle:
return i
return -1
看了别人的代码,将上面的代码简化了一下
class Solution:
def strStr(self, haystack: str, needle: str) -> int:
# 空串或者haystack长度小于needle,返回0
if not needle and len(haystack) < len(needle):
return 0
len1 = len(haystack)
len2 = len(needle)
for i in range(len1-len2+1):
if haystack[i:i+len2] == needle:
return i
return -1