//1.常规方法
class Solution {
public:
int isPalindrome(int x) {
int temp=x;
if(x<0) return false;
int reverse=0;
while(x){
//overflow
if(reverse>INT_MAX/10)return false;
int digit=x%10;
x/=10;
reverse=reverse*10+digit;
}
if(reverse==temp)return true;
else return false;
}
};
class Solution {
public:
int isPalindrome(int x) {
//根据题解优化版本
if(x<0 || (x!=0 && x%10==0))return false;
//判断回文的时候只判断一半:这样不用处理爆int的操作
int reverseNum=0;
while(x>reverseNum){
reverseNum=reverseNum*10+x%10;
x/=10;
}
//如果是偶数的话,x=reverseNum
//如果是奇数的话 x=reverseNum/10
return (x==reverseNum)||(x==reverseNum/10);
}
};