对于一个给定的 source 字符串和一个 target 字符串,你应该在 source 字符串中找出 target 字符串出现的第一个位置(从0开始)。如果不存在,则返回 -1。
class Solution:
"""
@param source:
@param target:
@return: return the index
"""
def strStr(self, source, target):
# Write your code here
#如果source与target相同,则返回起始位置0
if source == target:
return 0
s = len(source)
t = len(target)
#满足条件的,返回出现的位置
if s > t:
#range不包含本身(右边),从0开始,需加一
for index in range(s - t + 1):
if source[ index : index + t ] == target:
return index
#其他情况即为查找不到,返回-1
return -1
九章算法给出的推荐答案:
https://www.jiuzhang.com/solution/implement-strstr/#tag-highlight-lang-python
class Solution:
"""
@param source:
@param target:
@return: return the index
"""
def strStr(self, source, target):
# Write your code here
if source is None or target is None:
return -1
len_s = len(source)
len_t = len(target)
for i in range(len_s - len_t + 1):
j = 0
while (j < len_t):
if source[i + j] != target[j]:
break
j += 1
if j == len_t:
return i
return -1