Рекурсивная функция. Палиндром

Задача

Палиндромом называется такое слово (или фраза), которое слева направо и справа налево читается одинаково. Нужно написать рекурсивную функцию, которая будет возвращать 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
→ Ссылка