Есть ли способ написать рекурсивную () функцию), которая принимает две строки в качестве параметров и возвращает значение True, если все символы в первой строке могут быть найдены по порядку во второй строке; и False в противном случае?Рекурсивная функция, которая идентифицирует, содержится ли строка 1 в строке 2? (Python 3.4)
Например:
>>> contains("lit", "litter")
True
>>> contains("thot", "thurtle")
False
>>> contains("ratchet", "ramtbunchiousest")
True
>>> contains("shade", "hadsazie")
False
Буквы не должны быть последовательными (как в третьем примере), но они должны быть в порядке (поэтому четвертый пример не получится).
Я написал этот код:
def contains_recursive(s1, s2):
if s1 == "":
return True
elif s1[0] == s2[0]:
return contains_recursive(s1[1:], s2[1:])
elif s1[0] != s2[0]:
return contains_recursive(s1[0], s2[1:])
else:
return False
return contains_recursive(s1, s2) == True
и выдал эту ошибку:
IndexError: string index out of range
Что я должен сделать, чтобы исправить эту проблему?
Почему это должно быть рекурсивным? Обучение ради, домашнее задание или ...? – rofls
@croesus без рекурсии вы можете использовать оператор «in» ex: result_bool = подстрока в строке –
@AnjaneyuluBatta - это вернет 'False', если символы не будут последовательными. – TigerhawkT3