【Leetcode】【python】Implement strStr()

来源:互联网 发布:电脑淘宝怎么联系卖家 编辑:程序博客网 时间:2024/06/16 13:40

题目大意

字符串匹配

解题思路

两种思路:
1. 直接一个个匹配过去(遍历)
2. KMP算法:参考
http://www.ruanyifeng.com/blog/2013/05/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm.html
http://blog.csdn.net/coder_orz/article/details/51708389

代码

遍历

class Solution(object):    def strStr(self, haystack, needle):        """        :type haystack: str        :type needle: str        :rtype: int        """        length = len(needle)        for i in range(len(haystack) - len(needle) + 1):            if haystack[i:i+len(needle)] == needle:                return i        return -1

KMP

请参考上面的链接

总结

题目标签是双指针,我觉得基本思路就是找到第一个字母后逐一匹配后面的,其实KMP也是这样的,只不过用了一个表直接利用之前的匹配信息跳过一些不必要的匹配,有空仔细研究下。

原创粉丝点击