Q:
Determine whether an integer is a palindrome. Do this without extra space.
题目很简单,判断一个数是否是回文数,回文数的定义不清楚的请猛戳这儿。直接上代码
代码:
//回文数的判断,先将数的位数计算出来然后分别计算头尾两个数字是否相等
class Solution {
public:
bool isPalindrome(int x) {
int base = 1;
if(x < 0)return false;
while(x / base >= 10)base *= 10;
if(base == 1)return true;
while(x != 0)
{
int leftInteger, rightInteger;
leftInteger = x / base;
rightInteger = x % 10;
if(leftInteger != rightInteger)return false;
x %= base; //x -= leftInteger * base;
x /= 10;
base /= 100;
}
return true;
}
//第二种解法
bool isPalindrome2(int x) {
long long target = x;
long long reverse = 0;
while(target != 0)
{
reverse = 10*reverse + target % 10;
target /= 10;
}
return reverse == x;
}
};