LeetCode_Python3: 28. 实现strStr(简单)

开始之前:从2018/8/27开始刷LeetCode,计划每周刷五题,周末进行总结并发布在csdn上,计划先刷150道题,从简单开始。

week 2-5


要求:

CODE:

class Solution:
    def strStr(self, haystack, needle):
        """
        :type haystack: str
        :type needle: str
        :rtype: int
        """
        # 如果needle为None
        if not needle:
            return 0
        
        if len(haystack) < len(needle):  # haystack还没needle长
            return -1
        
        l = len(haystack)-len(needle)  # l为两个长度之差
        for i in range(l+1):  # 从头开始索引,这样设计可以减少循环次数
            if haystack[i:i+len(needle)] == needle: 
                return i
        return -1

注意:试想 haystack = 'Imhero'    needle = 'hero'

           l = 6 - 4 = 2

           则索引范围 [0, 3], 即从I开始索引,到h为止,因为h之后长度不够hero了,不必浪费时间

          

结果:

猜你喜欢

转载自blog.csdn.net/Kuroyukineko/article/details/82529540