009J. Palindrome Number

Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same backward as forward.

Example 1: Input: 121 Output: true

Example 2: Input: -121 Output: false

Explanation: From left to right, it reads -121. From right to left, it becomes 121-. Therefore it is not a palindrome.

Example 3: Input: 10 Output: false Explanation: Reads 01 from right to left. Therefore it is not a palindrome.

Follow up: Could you solve it without converting the integer to a string?

Method 1

这个办法是先翻转字符 再对比。 这里有个问题就是 为什么不需要担心翻转产生的 overflow?

class Solution {
    public boolean isPalindrome(int x) {
        int dupx = x;
        if (x > 0 || x == 0){
            int rev = 0;
            while(x != 0){
                rev = 10* rev + x%10;
                x = x/10;
            }
            return rev == dupx;
        }
        else{
            return false;
        }
    }
}

Last updated

Was this helpful?