本题还是反转一个整数的题目,首先确定负数不是palindrome,题目的提示里有 You could also try reversing an integer. However, if you have solved the problem "Reverse Integer", you know that the reversed integer might overflow. How would you handle such case? 我们可以这样来解决,用result来代表反转的结果,当正确时result不会大于原数字,只需判断result是否大于原数字即可,无需等到result溢出了才返回false。代码如下:
class Solution {
public:
bool isPalindrome(int x) {
if(x <0)
return false;
int num = x,result=0;
while(num > 0)
{
if(result < x)
{
result = result*10+ num %10;
num /= 10;
}
else
return false;
}
if(result == x)
return true;
else
return false;
}
};