Описание задачи
Программа принимает на вход строку и выводит ее в обратном порядке с использованием рекурсии.
Решение задачи
- Принимается строка и записывается в отдельную переменную.
- Далее эта переменная передается в качестве аргумента в рекурсивную функцию.
- В качестве базового условия рекурсии принимаем равенство длины строки нулю. В этом случае возвращается нулевая строка и функция завершает свою работу.
- В противном случае опять рекурсивно вызываем эту же функцию, но без первого символа, и просто прибавляем к ней этот символ. Таким образом, в результате у нас накапливается эта же строка, но в обратном порядке.
- Выводим результат на экран.
- Конец.
Исходный код
Ниже дан исходный код, который осуществляет вывод строки в обратном порядке с использованием рекурсии. Результаты работы программы также даны ниже.
def reverse(string): if len(string) == 0: return string else: return reverse(string[1:]) + string[0] a = str(input("Введите строку: ")) print(reverse(a))
Объяснение работы программы
- Пользователь вводит строку, которая записывается в переменную
a
. - Далее эта переменная передается в качестве аргумента в рекурсивную функцию
reverse()
. - В качестве базового условия рекурсии принимаем равенство
0
длины строки, для вычисления которой используем встроенную функциюlen()
. В этом случае возвращается нулевая строка и функция завершает свою работу. - В противном случае опять рекурсивно вызываем эту же функцию, но без первого символа, используя для этого срез строки
string[1:]
, и просто прибавляем к ней этот символ, обращаясь к нему по индексуstring[0]
. Таким образом, в результате у нас накапливается эта же строка, но в обратном порядке. - Выводим результат на экран.
Результаты работы программы
Пример 1: Введите строку: hello world dlrow olleh Пример 2: Введите строку: first tsrif