class Solution {
public boolean isPalindrome(int x) {
if(x < 0 || (x % 10 == 0 && x != 0)) {
return false;
}
int n=x;
int a=0,rec=0;
while(n!=0){ //在链表里可以通过快慢指针找到后一半的节点,这里用/10和/100来查找整数后一半
a=x%10;
x=x/10; //x为前一半的数字(x为偶数位数字)或者前一半少一位数字(奇数位)
rec=rec*10+a;//rec 为逆序后一半的数字
n/=100;//这几行代码还可以缩减
}
return x==rec||x==rec/10;// 这一句有点繁杂:return (x==rec||x==rec/10)?true:false;
}
}
leetcode No.9 回文数
最新推荐文章于 2021-07-01 18:35:04 发布