链接:https://leetcode-cn.com/problems/implement-strstr/description/
Q:
实现 strStr() 函数。
给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。
示例 1:
输入: haystack = "hello", needle = "ll" 输出: 2
示例 2:
输入: haystack = "aaaaa", needle = "bba" 输出: -1
思路:对于字符串,这是一个类似于查找或者匹配的问题,不使用index()等库函数的话,我使用双指针完成操作,对于fast指针,如果haystack [fast] == needle[0] 那么slow = fast,fast+=len(needle) 如果 haystack[slow:fast] == needle 则返回slow 否则继续遍历,代码如下:
class Solution(object):
def strStr(self, haystack, needle):
"""
:type haystack: str
:type needle: str
:rtype: int
"""
if not (needle in haystack):
return -1
if needle == "":
return 0
fast = 0
lens = len(needle)
while(fast < len(haystack)):
if haystack[fast] == needle[0]:
slow = fast
fast += lens
if haystack[slow:fast] == needle:
return slow
else:
fast = slow+1
else:
fast+=1
return -1