Обратные цифры целого числа с обработанным переполнением | Набор 2

Опубликовано: 20 Сентября, 2022

Учитывая 32-битное целое число N . Задача состоит в том, чтобы инвертировать N , если инвертированное целое переполняется, вывести -1 в качестве вывода.

Примеры

Input: N = 123
Output: 321

Input: N = -123
Output: -321

Input: N = 120
Output: 21

Подход: в отличие от набора подходов 1 из статьи, эту проблему можно решить, просто используя 64-битную структуру данных и диапазон типа данных int [-2^31, 2^31 – 1] .

  • Скопируйте значение заданного числа N в длинную переменную
  • Проверьте, является ли он отрицательным
  • Теперь переворачиваем длинное число цифра за цифрой, и если на каком-то шаге его значение выходит за пределы диапазона типа int, возвращаем 0 .
  • Сделать полученное число отрицательным, если заданное число отрицательно
  • Снова проверьте, находится ли число в диапазоне int. Если да, верните 0 , иначе верните обратный номер.

Ниже приведена реализация описанного выше подхода.


Временная сложность: O(D), где D — количество цифр в N.
Вспомогательное пространство: O(1)

РЕКОМЕНДУЕМЫЕ СТАТЬИ