Алгоритм проверки строки на палиндром

Сравнивайте символы с двух концов, двигаясь к центру. При первом несовпадении верните 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).

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее