Сравнивайте символы с двух концов, двигаясь к центру. При первом несовпадении верните false; если проверка закончилась, строка является палиндромом.
Алгоритм проверки строки на палиндром
Сравнивайте символы с двух концов, двигаясь к центру. При первом несовпадении верните false; если проверка закончилась, строка является палиндромом.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Реализовать функцию (метод), которая определяет, является ли заданная строка палиндромом — последовательностью символов, одинаково читающейся слева направо и справа налево, например: aabaa.
Ответ
Сравнивайте символы с двух концов, двигаясь к центру. При первом несовпадении верните false; если проверка закончилась, строка является палиндромом.
Строгий вариант Python:
def is_palindrome(text):
left, right = 0, len(text) - 1
while left < right:
if text[left] != text[right]:
return False
left += 1
right -= 1
return True
Пустая строка и один символ считаются палиндромами. Регистр, пробелы и пунктуация учитываются; нормализация потребовала бы отдельного правила. Время O(n), дополнительная память O(1).