Найти - Пользователи
Полная версия: поворот слова
Начало » Центр помощи » поворот слова
1
ayan
спасибо!
FishHook
ayan
Потому что res объявлена в области видимости функции, на каждой итерации рекурсии это будет новая переменная. Вот так будет работать

 def reverse(str):
    res = ''
    def _reverse():
        nonlocal res
        nonlocal str
        if len(str) > 0:
            res += str[-1]
            str = str[:-1]
            _reverse()
    _reverse()
    return res
print(reverse("abcd"))
FishHook
Вообще, это тот случай, когда рекурсия только мешает, без неё алгоритм получается тривиальный
FishHook
Но если очень хочется рекурсии, то решать надо так

 def reverse(s):
    if len(s) == 1:
        return s
    res = s[-1] + reverse(s[:-1])
    return res
print(reverse("abcd"))
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB