class Solution {
public boolean isPalindrome(int x) {
// if (x < 0) return false;
// int tempX = x;
// int reverse = 0;
// while (tempX > 0) {
// reverse = reverse * 10 + tempX % 10;
// tempX /= 10;
// }
// return x == reverse;
if (x < 0 || (x != 0 && x % 10 == 0)) return false;
int halfReverseX = 0;
while (x > halfReverseX) {
halfReverseX = halfReverseX * 10 + x % 10;
x /= 10;
}
return halfReverseX == x || halfReverseX / 10 == x;
}
}