Я делаю MIT Intro для CS-класса, чтобы изучить python и застрял в наборе проблем, включающем рекурсивное программирование (вызов функции внутри себя). Цель состоит в том, чтобы найти ряд вхождений для заданной целевой строки. У меня есть следующий код, и из моей логики кажется, что это так, но я не могу понять, почему это не так! Буду признателен за любую оказанную помощь. Благодарю.Рекурсивная простая функция Python
def countSubStringMatchRecursive(target,key):
answers = []
match = target.find(key)
if match != -1:
answers.append(match)
next_target = target[match+1:]
countSubStringMatchRecursive(next_target,key)
return len(answers)
Так что для заданных аргументов:
target1 = 'mjzzmjzzmj'
key1 = 'zz'
print(countSubStringMatchRecursive(target1, key1))
Я получаю 1 вместо правильного ответа из двух.
Это на Python3 кстати.
Пожалуйста, объясните, как именно ваш код выходит из строя. Это крушение? Вернуть неверные данные? (Пример ввода/вывода/ожидаемого) – Blorgbeard
Вы просто хотите подсчет или хотите индексы? Что относительно совпадающих совпадений, например. «aba» встречается дважды в «ababa», если вы допускаете перекрытие. – Cyphase
См. Редактирование. Я получаю неправильный ответ. Я ищу счет здесь. – MJ49