leetcode -- 28 实现strstr() -- python

实现strstr()

在这里插入图片描述
创建两个指针,指针之间的长度等于needle字符串的长度,通过遍历字符串,进行比较即可

class Solution:
    def strStr(self, haystack: str, needle: str) -> int:
        # 空串或者haystack长度小于needle,返回0
        if not needle and len(haystack) < len(needle):
            return 0

        length = len(haystack)-len(needle)+1
        # 设置两个指针i, j分别指向要判断的haystack子串的开头和结尾
        for i in range(0, length):  # i的起始位置是0
            for j in range(i+len(needle)-1, len(haystack)): # i到j的字符串长度要等于needle的字符串长度
                if haystack[i:j+1] == needle:
                    return i
        return -1         

在这里插入图片描述
看了别人的代码,将上面的代码简化了一下

class Solution:
    def strStr(self, haystack: str, needle: str) -> int:
        # 空串或者haystack长度小于needle,返回0

        if not needle and len(haystack) < len(needle):
            return 0

        len1 = len(haystack)
        len2 = len(needle)

        for i in range(len1-len2+1):
            if haystack[i:i+len2] == needle:
                return i
        return -1      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值