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

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

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

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

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

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

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

Условие

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

Ответ

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

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

Пустая строка и строка из одного символа считаются палиндромами. «Аа» даст false, а «а а» — true. Перебор ведётся по Unicode-кодовым точкам; составные графемы и канонически эквивалентные написания специально не нормализуются. Время O(n), память O(n) для массива символов.

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

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

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

Подробнее