Проверка строки на палиндромность

Отфильтруйте буквы и цифры, приведите их к одному регистру и сравните пары с противоположных концов. После фильтрации пустая последовательность считается палиндромом.

Короткий ответ

Что ответить на собеседовании

Отфильтруйте буквы и цифры, приведите их к одному регистру и сравните пары с противоположных концов. После фильтрации пустая последовательность считается палиндромом.

Подробный разбор

Ответ с пояснениями

Условие

Необходимо определить, является ли заданная строка палиндромом. Палиндром — это последовательность символов, одинаково читаемая слева направо и справа налево (включая пустую строку).

При проверке следует:

  1. Рассматривать только буквенно-цифровые символы.
  2. Игнорировать пробелы, пунктуацию и регистр букв.

Ответ

Отфильтруйте буквы и цифры, приведите их к одному регистру и сравните пары с противоположных концов. После фильтрации пустая последовательность считается палиндромом.

static boolean isPalindrome(String text) {
    java.util.Objects.requireNonNull(text);
    int[] chars = text.codePoints()
            .filter(Character::isLetterOrDigit)
            .map(Character::toLowerCase).toArray();
    for (int l = 0, r = chars.length - 1; l < r; l++, r--)
        if (chars[l] != chars[r]) return false;
    return true;
}

Время O(n), память O(n). Обработка через code points поддерживает символы за пределами базовой Unicode-плоскости. Это простое Unicode-приведение регистра, не полноценная лингвистическая нормализация или case folding с заменой одного символа несколькими.

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

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

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

Подробнее