Рекурсивная функция. Палиндром
Задача
Палиндромом называется такое слово (или фраза), которое слева направо и справа налево читается одинаково. Нужно написать рекурсивную функцию, которая будет возвращать True, если слово палиндром, и False, если нет.
Будем считать, что пустая строка также является палиндромом.
Решение должно работать на строках без знаков препинания. Проверьте, что функция в последующих ячейках отработала верно.
Обычной функцией решить задачу вроде просто:
def palindrom(text):
text = text.replace(" ", '').lower()
if text == text[::-1]:
return True
else:
return False
Но как здесь использовать рекурсивную функцию? И что она должна делать? Помогите, пожалуйста
def is_palindrome(word):
word = word.replace(" ", "").lower()
if len(word) <= 1:
return True
if word[0] != word[-1]:
return False
return is_palindrome(word[1:-1])
Вроде решил
Ответы (1 шт):
Автор решения: Artem
→ Ссылка
Python
def is_palindrome(word):
"""Проверяет, является ли слово палиндромом.
Args:
word: Проверяемое слово.
Returns:
True, если слово является палиндромом, и False в противном случае.
"""
# Пустая строка является палиндромом
if not word:
return True
# Слово с одним символом является палиндромом
if len(word) == 1:
return True
# Если первый и последний символы совпадают, рекурсивно проверяем оставшуюся часть слова
if word[0] == word[-1]:
return is_palindrome(word[1:-1])
# В противном случае слово не является палиндромом
return False