Задание:
Напишите рекурсивную функцию is_palindrome, которая принимает строку с именем word в качестве параметра и возвращает True, если длина слова меньше или равна 1. Если длина слова больше 1, функция должна возвращать False, если первый символ слова отличается от последнего символа слова. Если длина слова больше 1, а первый и последний символы строки идентичны, функция должна вернуть результат is_palindrome() с параметром слова, в котором удалены первый и последний символы (например, is_palindrome("anna ") должен возвращать результат is_palindrome("nn")).
Мой код:
def is_palindrome(word):
if len(word) <= 1:
return True
if len(word) > 1:
if word[0] != word[len(word) - 1]:
return False
elif word[0] == word[len(word) - 1]:
return word[1:(len(word) - 1)]
possible_palindrome = input("Enter a word/phrase to check: ")
if is_palindrome(possible_palindrome):
print(possible_palindrome, "is a palindrome")
else:
print(possible_palindrome, "is not a palindrome")
Отзыв от оценки:
Вам нужно вернуть рекурсивный вызов is_palindrome






Проверьте конечные точки строки (первый и последний символ), если они равны, верните вызов оставшимся (все символы, кроме первого и последнего):
def is_palindrome(word):
if len(word) <= 1:
return True
if word[0] != word[-1]:
return False
return is_palindrome(word[1:-1])
Примеры:
>>> is_palindrome("f")
True
>>> is_palindrome("foo")
False
>>> is_palindrome("foof")
True
рекурсивная функция должна вызывать себя в какой-то момент, ваша функция, похоже, этого не делает