LeetCode(python3) #28 实现strStr()

@[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来处理,然后想了想好像这样就没做题的感觉了,于是有想了一下,才想到思路二,做完提交后才知道思路二的解法叫做滑动窗口。

优化:提交后看题解,很多朋友说还有更好的解法,找个时间去看看,然后在回来更新一下代码。

交流:如果有什么建议或者疑问可以在文章下面回复哈,期待交流。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值