题:给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1
法:先找在haystack中等于needle[0]字符的位置i,再从i开始依次比较后续的字符和needle中的字符是否相同,这里会额外设一个指针j,一旦haystack[i+j]!=needle[j],直接break,换i+1重复上述操作
def strStr(self, haystack, needle):
"""
:type haystack: str
:type needle: str
:rtype: int
"""
if haystack=='' and needle!='':return -1
if needle=='':return 0
for i in range (len(haystack)-len(needle)+1):
if haystack[i]==needle[0]:
j=0
while j<len(needle):
if haystack[i+j]!=needle[j]:break
else:j+=1
if j==len(needle):return i
return -1

1492

被折叠的 条评论
为什么被折叠?



