Найдите максимум между N и числом, образованным путем обращения 32-битного двоичного представления N

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

Для данного положительного 32-битного целого числа N задача состоит в том, чтобы найти максимум между значением N и числом, полученным десятичным представлением обращения двоичного представления N в 32-битное целое число.

Примеры:

Input: N = 6
Output: 1610612736
Explanation:  
Binary representation of 6 in a 32-bit integer is 00000000000000000000000000000110 i.e., (00000000000000000000000000000110)2 = (6)10.
Reversing this binary string gives (01100000000000000000000000000000)2 = (1610612736)10.
The maximum between N and the obtained number is 1610612736. Therefore, print 1610612736.

Input: N = 1610612736
Output: 1610612736

Подход: выполните следующие шаги, чтобы решить проблему:

  • Вычислите двоичную строку числа N и сохраните ее в строке S.
  • Переверните строку S .
  • Вычислите десятичное значение вновь перевернутой строки S в переменной, скажем, M .
  • После выполнения вышеуказанных шагов выведите в качестве результата максимальное значение N и M.

Ниже приведена реализация вышеуказанного подхода:

Временная сложность: O(32)
Вспомогательное пространство: O(1)