Описание задачи
Программа принимает на вход строку и выводит ее в обратном порядке с использованием рекурсии.
Решение задачи
- Принимается строка и записывается в отдельную переменную.
- Далее эта переменная передается в качестве аргумента в рекурсивную функцию.
- В качестве базового условия рекурсии принимаем равенство длины строки нулю. В этом случае возвращается нулевая строка и функция завершает свою работу.
- В противном случае опять рекурсивно вызываем эту же функцию, но без первого символа, и просто прибавляем к ней этот символ. Таким образом, в результате у нас накапливается эта же строка, но в обратном порядке.
- Выводим результат на экран.
- Конец.
Исходный код
Ниже дан исходный код, который осуществляет вывод строки в обратном порядке с использованием рекурсии. Результаты работы программы также даны ниже.
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

