Обратные цифры целого числа с обработанным переполнением | Набор 2
Опубликовано: 20 Сентября, 2022
Учитывая 32-битное целое число N . Задача состоит в том, чтобы инвертировать N , если инвертированное целое переполняется, вывести -1 в качестве вывода.
Примеры
Input: N = 123
Output: 321Input: N = -123
Output: -321Input: N = 120
Output: 21
Подход: в отличие от набора подходов 1 из статьи, эту проблему можно решить, просто используя 64-битную структуру данных и диапазон типа данных int [-2^31, 2^31 – 1] .
- Скопируйте значение заданного числа N в длинную переменную
- Проверьте, является ли он отрицательным
- Теперь переворачиваем длинное число цифра за цифрой, и если на каком-то шаге его значение выходит за пределы диапазона типа int, возвращаем 0 .
- Сделать полученное число отрицательным, если заданное число отрицательно
- Снова проверьте, находится ли число в диапазоне int. Если да, верните 0 , иначе верните обратный номер.
Ниже приведена реализация описанного выше подхода.
Временная сложность: O(D), где D — количество цифр в N.
Вспомогательное пространство: O(1)