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

你可能感兴趣的:(2021-02-02 [day33] Python百日打卡学习自【夸可编程】)