python def ispalindrome(s: str) -> bool: import re # Убираем все, кроме букв и цифр, и приводим к нижнему регистру cleaned = re.sub(r'[^a-zA-Z0-9]', '', s).lower() # Проверяем равенство строки и её обратного варианта return cleaned == cleaned[::-1]
Задача: Палиндром
print(ispalindrome("racecar")) # True print(ispalindrome("A man, a plan, a canal: Panama")) # True print(ispalindrome("race a car")) # False
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Задача: Палиндром
Напишите функцию is_palindrome(s: str) -> bool, которая проверяет, является ли строка палиндромом (читается одинаково слева направо и справа налево). При этом нужно игнорировать пробелы, знаки препинания и регистр букв.
Примеры:
- is_palindrome("racecar") → True
- is_palindrome("A man, a plan, a canal: Panama") → True
- is_palindrome("race a car") → False
Ответ
python def is_palindrome(s: str) -> bool: import re # Убираем все, кроме букв и цифр, и приводим к нижнему регистру cleaned = re.sub(r'[^a-zA-Z0-9]', '', s).lower() # Проверяем равенство строки и её обратного варианта return cleaned == cleaned[::-1]
Примеры:
print(is_palindrome("racecar")) # True print(is_palindrome("A man, a plan, a canal: Panama")) # True print(is_palindrome("race a car")) # False