您的位置:首页 > 编程语言 > Python开发

Leetcode做题日记:28. 实现strStr()(PYTHON)

2018-12-29 17:17 716 查看

实现 strStr() 函数。
给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。
示例 1:
输入: haystack = “hello”, needle = “ll”
输出: 2

示例 2:
输入: haystack = “aaaaa”, needle = “bba”
输出: -1

第一次的代码,只击败27.76%
上来先把h n打上来,可以少打很多字母,前面几个if 是为了判断几个特殊的例子。遍历h,如果发现和n中第一个字母相同的字母,标记为i,则表明有可能再h中存在n,所以开始从i开始到n的长度的字符串依次比较,如果都相同就满足题意,不相同就i=i+1

其实关于i的迭代,我最初的想法是

i=i+j

即如果这个片段不是的话,i从下一段开始,但是万一n是‘ippip…’,就会错过

h=haystack
n=needle
L1=len(h)
L2=len(n)
i=0
j=0
if L1==0 and L2==0:
return 0
if  L1<L2 :
return -1
if L2==0:
return 0
while i <L1:
if h[i]== n[0] :
while j<L2:
if i+j==L1:#如果h都到头了还没找完n,返回-1
return -1
if h[i+j] !=n[j]:
break
j=j+1#判断相符的个数

if j==L2:
return i
j=0        #写在最后也行,然后i=i+1
i=i+j+1

return -1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: