开始之前:从2018/8/27开始刷LeetCode,计划每周刷五题,周末进行总结并发布在csdn上,计划先刷150道题,从简单开始。
week 2-5
要求:
CODE:
class Solution:
def strStr(self, haystack, needle):
"""
:type haystack: str
:type needle: str
:rtype: int
"""
# 如果needle为None
if not needle:
return 0
if len(haystack) < len(needle): # haystack还没needle长
return -1
l = len(haystack)-len(needle) # l为两个长度之差
for i in range(l+1): # 从头开始索引,这样设计可以减少循环次数
if haystack[i:i+len(needle)] == needle:
return i
return -1
注意:试想 haystack = 'Imhero' needle = 'hero'
l = 6 - 4 = 2
则索引范围 [0, 3], 即从I开始索引,到h为止,因为h之后长度不够hero了,不必浪费时间
结果: