Отвергните отрицательные и небезопасные целые числа, затем сравните симметричные цифры строкового представления. Ноль является палиндромом.
Проверка, является ли число палиндромом
Отвергните отрицательные и небезопасные целые числа, затем сравните симметричные цифры строкового представления. Ноль является палиндромом.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Необходимо написать функцию 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 — количество цифр.