Check if binary representation of a number is palindrome in Python

PythonServer Side ProgrammingProgramming

Suppose we have a number n. We have to check whether the binary representation of n is palindrome or not.

So, if the input is like n = 9, then the output will be True as binary representation of 9 is 1001, which is palindrome.

To solve this, we will follow these steps −

  • ans := 0
  • while num > 0, do
    • ans := ans * 2
    • if num is odd, then
      • ans := ans XOR 1
    • num := num / 2
  • return ans

Let us see the following implementation to get better understanding −

Example

 Live Demo

def reverse_binary(num) :
   ans = 0
   while (num > 0) :
      ans = ans << 1
      if num & 1 == 1 :
         ans = ans ^ 1
      num = num >> 1
   return ans
def solve(n) :
   rev = reverse_binary(n)
   return n == rev
n = 9
print(solve(n))

Input

9

Output

True
raja
Published on 30-Dec-2020 17:52:22
Advertisements