判断一个非负整数 n
的二进制表示是否为回文数
- 我们保证
0 <= n <= 2^32 - 1
方法一:转化成二进制然后判断
二进制数实际上是十进制,自己测试可以过,但是空间花费很大,查过int能表示的最大范围。
应该将二进制数存在一个数组中。
class Solution {
public:
/**
* @param n: non-negative integer n.
* @return: return whether a binary representation of a non-negative integer n is a palindrome.
*/
bool isPalindrome(int n) {
// Write your code here
int b=0;//二进制
int p=0;//逆位
while(n>0){
b=b*10+n%2;
n/=2;
}
int num=b;
while(num>0){
p=p*10+num%10;
num/=10;
}
if(b==p)
{
return true;
}
return false;
}
};
方法二: