滑动窗口-1--LC28.实现strStr()
class Solution(object):def strStr(self, haystack, needle):""":type haystack: str:type needle: str:rtype: int"""# API# return haystack.find(needle)# 滑动窗口star = 0.
·
class Solution(object):
def strStr(self, haystack, needle):
"""
:type haystack: str
:type needle: str
:rtype: int
"""
# API
# return haystack.find(needle)
# 滑动窗口
star = 0
# end不能从0开始,这里应该是needle的长度最后一位
for end in range(len(needle)-1, len(haystack)):
# 判断是否相等
# 要想取到end,这里就是end+1
if haystack[star:end+1] == needle:
return star
star += 1
return -1
# 此题有一个特殊情况,对于本题而言,当 needle 是空字符串时我们应当返回 0 。
# 带入此题,len(needle)-1=0-1=-1
# haystack[star:end+1]=haystack[0:0]=空字符串,needle也是空字符串
# 所以此时 return 0
# 其实可以在开始时,就判断一下空字符串的情况
更多推荐
已为社区贡献2条内容
所有评论(0)