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 = 121Output:true

**Example 2:**

Input:x = -121Output:falseExplanation:From left to right, it reads -121. From right to left, it becomes 121-. Therefore it is not a palindrome.

**Example 3:**

Input:x = 10Output:falseExplanation:Reads 01 from right to left. Therefore it is not a palindrome.

**Example 4:**

Input:x = -101Output:false

**Constraints:**

`-2`

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

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

public boolean isPalindrome(int x) {
if(x<0){
return false;
}
return x == reverse(x);
}
private int reverse(int x){
int rev = 0;
while(x!=0){
int rem = x%10;
rev = rev*10 + rem;
x = x/10;
}
return rev;
}

This question requires knowledge of the concept of reversing an integer. Once we are able to reverse the given integer, then we just require to compare the current given number with the reversed number. If both the given number and the reversed number are the same, then the given integer is a palindrome otherwise it is not a palindrome.

Time Complexity: O(d) // where d is the number of digits in the integer.

Space Complexity: O(1) // As we are not taking any extra space, so it is a constant space.