2018-06-14 LeetCode28

题目描述

我的解法

简单的遍历寻找,虽然一看到这一题就想到了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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • LeetCode 刷题随手记 - 第一部分 前 256 题(非会员),仅算法题,的吐槽 https://leetc...
    蕾娜漢默阅读 17,941评论 2 36
  • 人生是很奇妙的,你似乎感觉不到它的存在,但当你仔细回想时,你却发现它真实的存在过,并留下了永久的回忆。其实,人生就...
    口述笔录阅读 221评论 0 1
  • 小麦返青拔节关键之控旺高产 麦控旺的最佳时期---返青~拔节初期 小麦旺长原因 播种过早。播量过大。底肥中氮肥用量...
    挽手历尽阅读 399评论 0 0
  • 平日里欢声笑语 微信上的记录总看不到底 分居两地的距离 在昨天成了过去 我们的爱情成了彼此的回忆 烦躁不安的天气 ...
    阳光少年时代阅读 191评论 0 0
  • 一、RSTP相关概念 1.当网络拓扑发生改变时,快速生成树协议(802.1w)能够明显地加快重新计算生成树的速度。...
    肉饼阅读 2,202评论 0 2