9. Palindrome Number

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?

    public boolean isPalindrome(int x) {
        if(x < 0) {
            return false;
        }
        int res = 0;
        int y = x;
        while(y != 0) {
            res = res * 10 + y % 10;
            y /= 10;
        }
        if(res == x) {
            return true;
        } else {
            return false;
        }
    }
}

或者

class Solution {
    public boolean isPalindrome(int x) {
        String s = x + "";
        int l = 0, r = s.length() - 1;
        while (l < r) {
            if (s.charAt(l) != s.charAt(r)) return false;
            l++;
            r--;
        }
        return true;
    }
}

第一个方法:
Time Complexity = O(log(x)) 以十为底
Space Complexity = O(1)

你可能感兴趣的:(9. Palindrome Number)