题目
给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。
题解
bool isPalindrome(int x){
//负数直接返回false ,还需把最后一位为0的数字剔除但不包括数字0
if(x<0 || (x%10==0 && x!=0)) return false;
else{//反转前半部分
int n=0;//存储反转一半的数字
while(x>n){ //确保只反转一半的数字(偶数位),或者n/10是一半的数字(奇数)
n=n*10+x%10;
x=x/10;
}
return x==n||x==n/10;//“或”前面是整数位数是偶数的情况,后面是位数是奇数情况
}
//还可选择直接将整个数字进行反转比较
}