解题思路
不将整数转换为字符串
1.得到整数的位数,判断出整数是几位数的
2.得出当前整数的最高位和最低位,进行比较是否相同
3.如果相同,则将整数用几位数取余再/10则可得出当前整数去除最高位和最低位后的新整数
int div = 1;
//
while (x / div >= 10) div *= 10;
获取整数是几位数的代码
总体代码
class Solution {
public boolean isPalindrome(int x) {
//边界判断
if (x < 0) return false;
int div = 1;
//
while (x / div >= 10) div *= 10;
while (x > 0) {
int left = x / div;
int right = x % 10;
if (left != right) return false;
x = (x % div) / 10;
div /= 100;
}
return true;
}
}