Функция для определения, является ли строка палиндромом

Сравните символы с начала и конца, постепенно сдвигая указатели к центру. Первое несовпадение означает false; если его нет, верните true.

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

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

Сравните символы с начала и конца, постепенно сдвигая указатели к центру. Первое несовпадение означает false; если его нет, верните true.

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

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

Условие

Создайте функцию, которая принимает слово (строку) и проверяет, читается ли оно одинаково слева направо и справа налево. При необходимости можно переименовать входной параметр, но логика должна оставаться той же – вернуть true, если слово палиндром, и false в противном случае.

Ответ

Сравните символы с начала и конца, постепенно сдвигая указатели к центру. Первое несовпадение означает false; если его нет, верните true.

function isPalindrome(word) {
  const chars = [...word];
  for (let left = 0, right = chars.length - 1; left < right; left++, right--) {
    if (chars[left] !== chars[right]) return false;
  }
  return true;
}

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

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

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

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

Подробнее