Palindrome Number
对称整数,给定一个整数判断它是不是一个对称整数即正读还是反读是一样的。
难度:易
例子:
123321
1234554321
思路:可以将这个整数翻转看翻转后的整数是否和翻转前相同
直接上代码:
class Solution {
public:
bool isPalindrome(int x) {
int reverse = 0;
int k = 0;
int temp = x;
bool bResult = false;
if(x < 0)
return false;
while(1)
{
k ++;
temp /= 10;
if(temp == 0)
break;
}
temp = x;
for(int i = 1; i <= k; i ++)
{
reverse = reverse * 10 + temp % 10;//可能存在整数溢出的情况,但这里只比较大小。溢出之后翻转之后的数肯定和原数不相等了,所以这里无须考虑溢出
temp /= 10;
}
if(reverse == x)
bResult = true;
return bResult;
}
};