实现字符串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:
"""
if source == '' or target == '':
return -1
if len(source[start:]) < len(target):
# 如果source的长度小于target的长度,返回-1
return -1
for i in range(len(source) - start):
if start + i + len(target) > len(source):
return -1
if source[start + i:start + i+len(target)] == target:
return start + i
return -1