21day学通python epub_2021-02-02 [day33] Python百日打卡学习自【夸可编程】

'''

实现字符串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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值