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

Приведите строку к одному регистру, удалите пробельные символы и сравните симметричные позиции. Пунктуацию не удаляйте: по условию игнорируются только регистр и пробелы.

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

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

Приведите строку к одному регистру, удалите пробельные символы и сравните симметричные позиции. Пунктуацию не удаляйте: по условию игнорируются только регистр и пробелы.

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

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

Условие

Дана строка. Требуется определить, является ли она палиндромом — т.е. читается одинаково слева направо и справа налево, при этом регистр символов и пробелы не учитываются.

Ответ

Приведите строку к одному регистру, удалите пробельные символы и сравните симметричные позиции. Пунктуацию не удаляйте: по условию игнорируются только регистр и пробелы.

function isPalindrome(text) {
  const chars = Array.from(text.toLowerCase().replace(/\s/g, ''));
  for (let left = 0, right = chars.length - 1; left < right; left++, right--) {
    if (chars[left] !== chars[right]) return false;
  }
  return true;
}

Пустая строка считается палиндромом. Вариант работает по кодовым точкам; составные графемы требуют дополнительного разбиения. Время O(n), память O(n) для нормализованного массива. Регулярное выражение здесь игнорирует также табуляцию и переводы строк.

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

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

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

Подробнее