leetcode第二十八题 —— 实现strStr
2019-12-03 本文已影响0人
不分享的知识毫无意义
1.题目
原题:
实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。
例子:
输入: haystack = "aaaaa", needle = "bba"
输出: -1
2.解析
这个题没什么难度,甚至没有什么思路好讲。我的想法是,根据needle字符串长度截取haystack直到取到符合条件的字符串或者没有满意的字符串出现。
是有一个知识点要说:
当截取字符串超过字符串本身长度时,python不报错。比如a=[1,2],a[1:1000],取到的依然是2。
3.python代码
class Solution:
def strStr(self, haystack, needle):
if not needle:
return 0
if len(haystack) < len(needle):
return -1
else:
m = len(haystack)
n = len(needle)
for i in range(0, m):
if haystack[i:i+n] == needle:
return i
return -1