[LeetCode] Problem 9 - Palindrome Number

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

Example

No.1

Input: 121

Output: true

No.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.

No.3

Input: 10

Output: false

Explanation: Reads 01 from right to left. Therefore it is not a palindrome.

Follow up

Coud you solve it without converting the integer to a string?

Code

1
2
3
4
5
6
7
8
9
10
11
12
13
public boolean isPalindrome(int x) {
if (x < 0 || (x != 0 && x % 10 == 0))
return false;

int reverseX = 0;

while (x > reverseX) {
reverseX = reverseX * 10 + x % 10;
x /= 10;
}

return x == reverseX || reverseX / 10 == x;
}