Задача реализовать метод find как функцию для финансирования подстрок - PullRequest
0 голосов
/ 01 ноября 2018

Наш профессор попросил нас изменить указанную ниже функцию, чтобы успешно найти подстроки БЕЗ использования функций 'find' или 'In', доступных в python. Мне тяжело оборачиваться вокруг этого. Ищете вдохновение и / или руководство.

def find(astring, achar):
"""
Find and return the index of achar in astring.
Return -1 if achar does not occur in astring.
"""
ix = 0
found = False
while ix < len(astring) and not found:
    if astring[ix] == achar:
        found = True
    else:
        ix = ix + 1
if found:
    return ix
else:
    return -1

1 Ответ

0 голосов
/ 01 ноября 2018

Таким образом, вам нужно было добавить только один дополнительный цикл:

def findsub(astring, substring):
    ix = 0
    l = len(substring)
    while ix <= len(astring)-l:
        match = True
        for j in range(l):
            if astring[ix+j] != substring[j]:
                match = False
                break
        if match:
            return ix
        ix += 1
    return -1

find2('mess', 'es')
>>> 2
...