Число-палиндром
Ilya YurkinДано целое число x, верните true, если x является палиндромом, в противном случае - false.
Число-палиндром — число, которое читается одинаково, как справа налево, так и слева направо. Например, 121 — это палиндром, а 123 — нет.
Пример №1
Ввод: x = 2002 Вывод: true Объяснение: 2002 читается одинаково, как справа налево, так и слева направо.
Пример №2
Ввод: x = -121 Вывод: false Объяснение: Слева направо читается как -121, а справа налево как 121-, следовательно, это не палиндром.
Пример №3
Ввод: x = 10 Вывод: false Объяснение: Справа налево читается как 01, следовательно, это не палиндром.
Решение

- Отрицательные числа не могут быть палиндромами. Из примера №3 можно понять, что числа, оканчивающиеся на ноль, тоже не могут быть палиндромами. Для обоих случаев возвращаем сразу false (строки 6-8);
- Объявляем reversedNumber переменную для хранения палиндрома. Переменная xCopy нужна, чтобы не изменять значение исходного параметра (строки 10-11);
- Далее, в цикле, пока xCopy больше 0, переворачиваем число. На каждом шаге расширяем reversedNumber на один элемент (умножаем на 10), чтобы добавить последнюю цифру из copyX (остаток от деления xCopy) (13 строка). На 14 строке убираем крайнюю цифру справа из xCopy.
- На 17 строке проверяем, равно ли перевернутое число исходному числу.
Код решения в виде текста
/**
* @param {number} x
* @return {boolean}
*/
const isPalindrome = (x) => {
if (x < 0 || (x !== 0 && x % 10 === 0)) {
return false;
}
let reversedNumber = 0;
let xCopy = x;
while (xCopy > 0) {
reversedNumber = reversedNumber * 10 + (xCopy % 10);
xCopy = Math.floor(xCopy / 10);
}
return x === reversedNumber;
};
Больше интересных разборов в канале @js_is_easy, подписывайся