JIAKAOBO

LeetCode

venmo
wechat

感谢赞助!

  • ㊗️
  • 大家
  • offer
  • 多多!

Problem

Given an integer x, return true if x is palindrome integer.

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

  • For example, 121 is a palindrome while 123 is not.

Example 1:

Input: x = 121
Output: true
Explanation: 121 reads as 121 from left to right and from right to left.

Example 2:

Input: x = -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: x = 10
Output: false
Explanation: Reads 01 from right to left. Therefore it is not a palindrome.

Constraints:

  • $-2^{31} <= x <= 2^{31} - 1$

Code

class Solution {
    public boolean isPalindrome(int x) {
        if(x < 0) return false;
        if(x == 0) return true;
        if(x % 10 == 0) return false;

        int temp = 0;
        while(x > temp){
            int digit = x % 10;
            temp = temp * 10 + digit;
            x /= 10;
        }

        return (temp == x) || (temp / 10 == x);
    }
}
class Solution {
    public boolean isPalindrome(int x) {
        if(x < 0) return false;
        int keep = x;

        int res = 0;
        while(keep != 0) {
            int digit = keep % 10;
            int temp = res * 10 + digit;
            if(temp / 10 != res){
                return false;
            }

            res = temp;
            keep /= 10;
        }

        return res == x;
    }
}