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;
    }
}