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

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

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

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

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

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

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

Условие

Необходимо написать функцию isPalindrome, которая возвращает true, если переданное целое число читается одинаково слева направо и справа налево. Числа со знаком минус считаются не палиндромами.

function isPalindrome(num) {
  return;
}

console.log(isPalindrome(1234321));  // true
console.log(isPalindrome(-23432));   // false

Ответ

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

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

Ограничение safe integer предотвращает проверку уже округлённого Number. Для больших целых можно принять BigInt или исходную десятичную строку по отдельному контракту. Время и память O(d), где d — количество цифр.

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

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

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

Подробнее