美文网首页
2018-06-14 LeetCode28

2018-06-14 LeetCode28

作者: Betrayer丶 | 来源:发表于2018-06-14 21:27 被阅读0次

    题目描述

    我的解法

    简单的遍历寻找,虽然一看到这一题就想到了KMP算法,但是全都忘记了。。。

    class Solution:
        def strStr(self, haystack, needle):
            if needle == "":
                return 0
            for pos in range(len(haystack)):
                if needle == haystack[pos:pos+len(needle)]:
                    return pos
            return -1    
    

    最优解法

    大众解法

    比例最高的算法是直接调用字符串的find函数,一步到位。

    class Solution:
        def strStr(self, haystack, needle):
            return haystack.find(needle) 
    

    最优解法

    好像只是加了个去尾的判断,为啥不用KMP算法呢…

    class Solution:
        def strStr(self, haystack, needle):
            if needle == "":
                return 0
            edge = len(haystack)
            length = len(needle)
            for i in range(len(haystack)):
                if haystack[i] == needle[0]:
                    if i + length > edge:
                        return -1
                    if haystack[i:i+length] == needle:
                        return i
            return -1
    

    相关文章

      网友评论

          本文标题:2018-06-14 LeetCode28

          本文链接:https://www.haomeiwen.com/subject/husueftx.html