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

Сравнивайте символы с обоих концов строки, двигаясь к центру. При первом несовпадении возвращайте false; если проверка завершилась, строка является палиндромом.

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

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

Сравнивайте символы с обоих концов строки, двигаясь к центру. При первом несовпадении возвращайте false; если проверка завершилась, строка является палиндромом.

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

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

Условие

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

Ответ

Сравнивайте символы с обоих концов строки, двигаясь к центру. При первом несовпадении возвращайте false; если проверка завершилась, строка является палиндромом.

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

Здесь сравнение точное: регистр, пробелы и пунктуация учитываются, поскольку исключения не заданы. Пустая строка и один символ дают true. Array.from работает по кодовым точкам Unicode, но не по составным графемам. Время O(n), память O(n).

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

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

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

Подробнее