Описание задачи
Программа принимает на вход строку и букву. Надо определить (с использованием рекурсии), сколько раз данная буква встречается в строке.
Решение задачи
- Принимаем на вход строку и букву, записываем их в разные переменные.
- Передаем эти переменные в качестве аргументов в рекурсивную функцию.
- В качестве базы рекурсии примем условие, что строка является непустой.
- Если строка является непустой, то работа функции продолжается и мы смотрим, совпадает ли первый символ строки с проверяемой буквой, или нет. Если совпадает, то мы увеличиваем счетчик на единицу.
- Далее мы передаем строку без первой буквы снова в функцию, и все повторяется заново.
- Когда строка станет пустой, функция вернет нам количество вхождений буквы в строке. Выведем этот результат на экран.
- Конец.
Исходный код
Ниже дан исходный код программы для рекурсивного определения количества вхождений буквы в строку. Результаты работы программы также даны ниже.
def check(string, ch):
if not string:
return 0
elif string[0] == ch:
return 1 + check(string[1:], ch)
else:
return check(string[1:], ch)
string = raw_input("Введите строку:")
ch = raw_input("Введите букву для проверки:")
print("Количество вхождений:")
print(check(string, ch))
Объяснение работы программы
- Пользователь вводит строку и букву, которые записываются в отдельные переменные
stringиch. - Далее эти переменные передаются в качестве аргументов в рекурсивную функцию
check(). - Для того чтобы функция продолжала свою работу, необходимо, чтобы строка была непустой. Если строка является пустой, функция завершает свою работу и возвращает
0. - На следующем шаге рекурсивная функция проверяет, совпадает ли буква в переменной
chс первой буквой в строке. Если совпадает, то в выходное значение добавляется1, к которой прибавляется функцияcheck(), в которой в качестве аргумента передается наша строка, но уже без первой буквы. Если нет, то просто вызывается функцияcheck(), где в качестве аргумента также строка без первой буквы. - Так повторяется до тех пор, пока строка не станет пустой.
- После этого результат выводится на экран.
Результаты работы программы
Пример 1: Введите строку:abcdab Введите букву для проверки:b Количество вхождений: 2 Пример 2: Введите строку:hello world Введите букву для проверки:l Количество вхождений: 3

