'''
实现字符串find
实现字符串的find函数,返回字符串source中 子串target开始的位置, 从start索引开始搜索,如果可以找到多个,返回第一个,如果找不到返回-1
例子
my_find('this is a book', 'this') -> 0
my_find('this is a book', 'this', start=1) -> -1
假设
source,target一定为字符串类型
tips
朴素的两重循环
'''
def my_find(source, target, start=0):
"""
返回字符串source中 子串target开始的位置, 从start索引开始搜索
如果可以找到多个,返回第一个
:param source:
:param target:
:param start:
:return:
"""
#二重循环
len_source = len(source)
len_target = len(target)
if len_target == 0 or len_source == 0 or len_source < len_target:
return -1
for i in range(start, len_source):
for j in range(len_target):
if target[j] == source[i+j]:
j += 1
else:
break
if j == len_target:
return i
else:
i += 1
return -1
# pass
print(my_find('this is a book', 'this'))# -> 0
print(my_find('this is a book', 'this', start=1))# -> -1