Написано: 25.02.2023

7. Обратное целое число (Reverse Integer)

medium

Задание.

Учитывая 32-разрядное целое число x со знаком, верните x с перевернутыми цифрами. Если изменение x приводит к тому, что значение выходит за пределы 32-разрядного целого диапазона со знаком [-2^31, 2^31 - 1], то верните 0.

Предположим, что среда не позволяет вам хранить 64-разрядные целые числа (со знаком или без знака).

Пример 1.

Входные данные: x = 123

Результат: 321

Пример 2.

Входные данные: x = -123

Результат: -321

Пример 3.

Входные данные: x = 120

Результат: 21

Решение.

class Solution {
public:
    int reverse(int x) {
        long r = 0;
        while(x) {
            r *= 10;
            r += x%10;
            x /= 10;
        }
        if(r > INT_MAX || r < INT_MIN) return 0;
        return (int)r;
    }
};