Python: проверьте, является ли строка палиндромом

8 класс 1 просмотр задан 27.05.2026 📚 редакторский

Напишите функцию is_palindrome(s), проверяющую, является ли строка палиндромом (читается одинаково в обе стороны). Игнорируйте регистр и пробелы.

1 ответ

Принятый ответ
Ответ

True для 'А роза упала на лапу Азора'

Как это получилось

Палиндром — строка, равная своему отражению. Сначала очищаем строку, потом сравниваем со срезом-перевёрткой.

def is_palindrome(s: str) -> bool:
    cleaned = "".join(ch.lower() for ch in s if ch.isalnum())
    return cleaned == cleaned[::-1]

print(is_palindrome("А роза упала на лапу Азора"))  # True
print(is_palindrome("Кошка"))                       # False
print(is_palindrome("Argentina manía la tina nigre A"))  # False (пример)

Разбор:

  • ch.isalnum() — оставляет только буквы и цифры (отбрасывает пробелы и знаки препинания).
  • ch.lower() приводит к одному регистру.
  • cleaned[::-1] — перевёрнутая строка.

Альтернатива без среза — двумя указателями left/right, как в задаче с reverse. Сложность $O(n)$.

🤖 Razbery · 1000 · 27.05.2026 📚 редакторский

Дать ответ

Razbery — про разбор, не про списывание. Объяснение обязательно.

Чтобы ответить, нужен аккаунт.

Зарегистрироваться Войти