Trusted answers to developer questions

Ravi

Given a number `n`

, check if the binary representation of `n`

is a palindrome.

Example 1:

- Input: n=5
- Output: Yes

The binary representation of `5`

is `101`

, which is a palindrome.

Example 2:

- Input: n=10
- Output: No

The binary representation of `10`

is `1010`

which is not a palindrome.

The algorithm is straightforward. Find the reverse binary representation of `n`

and compare it with the binary representation of `n`

.

Let’s look at the code below:

class Main{ public static int findReverse(int n){ int reverse_bin = 0; int temp = n; while (temp > 0) { reverse_bin = (reverse_bin << 1) | (temp & 1); temp = temp >> 1; } return reverse_bin; } public static boolean isPalindrome(int n) { return n == findReverse(n); } public static void main(String[] args) { int n = 10; System.out.println("Is binary representation of " + n + " a palindraome? " + (isPalindrome(n)?"Yes":"No")); } }

Try it out!

- Lines 3 to 12: We reverse the computed binary number.
- Lines 14 to 16: We compare the reverse and original binary numbers.
- Lines 19 and 20: We set a binary number and call the
`isPalindrome()`

method.

RELATED TAGS

bitwise

CONTRIBUTOR

Ravi

RELATED COURSES

View all Courses

Keep Exploring

Related Courses