python实现strStr()函数

20 篇文章 0 订阅
5 篇文章 0 订阅

思路:

1、如果待查找子串为空,返回0(与c/c++的库函数保持一致);

2、如果大字符串的长度小于待查找子串的长度,返回-1;

3、计算需要编译的字符串下标位置:l = l1 - l2 + 1; 

4、从下标0到下标l遍历长字符串,截取与待查找子串长度相同的子字符串,判断内容是否与待查找子串相同,相同返回下标i;

5、默认找不到匹配的子串,返回-1。

class Solution(object):
    def strStr(self, haystack, needle):
        """
        :type haystack: str
        :type needle: str
        :rtype: int
        """
        if not needle:
            return 0
        l1 = len(haystack)
        l2 = len(needle)

        if l1 < l2:
            return -1

        l = l1 - l2 + 1
        for i in range(l):
            if haystack[i:i+l2] == needle:
                return i
        return -1

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值