# LeetCode 9. Palindrome Number

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 palindrome while `123` is not.

**Example 1:**

```
Input: x = 121
Output: true
```

**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.
```

**Example 4:**

```
Input: x = -101
Output: false
```

**Constraints:**

* `-231 <= x <= 231 - 1`

&#x20;**Follow up:** Could you solve it without converting the integer to a string?

## Solution:

[English Version in Youtube](https://youtu.be/99fQ34HHTuw)

[中文版解答Youtube Link](https://youtu.be/obBNRAfHsno)

[中文版解答Bilibili Link](https://www.bilibili.com/video/BV1vU4y1W7Zf/)

```
class Solution {
public:
    bool isPalindrome(int x) {
        if (x == 0) return true;
        if (x < 0) return false;
        if (x % 10 == 0) return false;
        
        int sum = 0;
        while (x > sum) {
            sum = sum * 10 + x % 10;
            x /= 10;
        }
        return (x == sum) || (x == sum / 10);
    }
    
};
```
