如果将数字反转将会遇到数据溢出的问题,通常解法不再列出,真正的大神不写注释,,,
我等渣渣看懂大神的代码然后解释一下:
public boolean isPalindrome(int x) {
if (x<0 || (x!=0 && x%10==0)) return false;//排除小于0的情况和末尾是0的情况
int rev = 0;
while (x>rev){
rev = rev*10 + x%10;
x = x/10; //rev*10+末尾数字可以得到后一段反序数
}
return (x==rev || x==rev/10);//位数为偶可以刚好除尽,位数为基数不能刚好除尽会多出10来
}