@[TOC](#28 实现strStr()解法)
一.解题思路
思路1:没什么好说的,就是Python的字符串内置函数find完美复合题目要求。
思路2:“滑动窗口”比较基础的做法了,首先把0和-1的情况判断掉,然后循环查找字符串的长度次,最后就是不断匹配了。例子如下
例子:hello ll i=0
判断 he == ll 不匹配 i+=1 i->1
判断 el == ll 不匹配 i+=1 i->2
判断 ll == ll 匹配 返回2
二.代码展示
# python内置函数
class Solution:
def strStr(self, haystack, needle):
return haystack.find(needle)
# 滑动窗口解法
class Solution:
def strStr(self, haystack, needle):
if needle not in haystack:
return -1
if needle == "":
return 0
needle_len = len(needle)
# 记录index
i = 0
# 循环haystack的字符串长度次
for _ in range(len(haystack)):
# 切needle的长度的字符串来匹配
if haystack[i:i+needle_len] == needle:
return i
i += 1
三.总结其他
总结:这题一开始就想到了用内置函数find来处理,然后想了想好像这样就没做题的感觉了,于是有想了一下,才想到思路二,做完提交后才知道思路二的解法叫做滑动窗口。
优化:提交后看题解,很多朋友说还有更好的解法,找个时间去看看,然后在回来更新一下代码。
交流:如果有什么建议或者疑问可以在文章下面回复哈,期待交流。