← Все вопросы

Как проверить, что строка — палиндром, игнорируя регистр и пробелы?

Задан 17 месяцев назад496 просмотров4 ответа
10

Нужно проверить фразу вроде 'А роза упала на лапу Азора' — это палиндром, если убрать пробелы и не смотреть на регистр. Как сделать чисто?

4 ответа

18
✓ Принятый ответ — помог автору

Сначала нормализуй строку, потом сравни с её разворотом:

s = 'А роза упала на лапу Азора'
clean = ''.join(c.lower() for c in s if c.isalpha())
print(clean == clean[::-1])  # True

isalpha() оставляет только буквы (выкидывает пробелы и знаки), lower() убирает регистр, [::-1] разворачивает.

6

Если только пробелы убрать: t = s.replace(' ', '').lower(); t == t[::-1].

2

clean == clean[::-1] после нормализации.

-3

Просто s == s[::-1]. (без нормализации не сработает: пробелы и регистр всё сломают, как раз про это вопрос)

Oleg Lugovskoi Так фраза с пробелами и заглавной не пройдёт эту проверку · 17 месяцев назад

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект