LeetCode Notes_#28 Implement strStr()
Contents
题目
Implement strStr().
Return the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.
Example 1:
Input: haystack = "hello", needle = "ll"
Output: 2
Example 2:
Input: haystack = "aaaaa", needle = "bba"
Output: -1
Clarification:
What should we return when needle is an empty string? This is a great question to ask during an interview.
如果输入是空字符串,应该返回0
For the purpose of this problem, we will return 0 when needle is an empty string. This is consistent to C's strstr() and Java's indexOf().
思路及解答
思路
-
题目要求
从一个字符串haystack当中寻找needle子串,返回第一次出现的索引值 -
思路
- 调用python字符串的自带方法
- 循环遍历
一个一个比较
解答
class Solution(object):
def strStr(self, haystack, needle):
"""
:type haystack: str
:type needle: str
:rtype: int
"""
#return haystack.find(needle)#抖机灵的做法....
a=len(haystack)
b=len(needle)
i=0
while(b<=a):
if haystack[i:i+b]==needle:
return i
i=i+1
a=a-1
return -1
循环的做法 beat 100%
今天的题貌似都比较简单...
需要注意的点
- 循环遍历的时候,范围只需要是[0,len(haystack)-len(needle)]就可以了,不需要从头到尾
- needle是""的时候,正确答案是返回0,因为:无论haystack是什么,可以看做最开始有一个""
a=""
a[0:0]
''