public class Solution {
public boolean isPalindrome(int x) {
if (x< 0 || (x !=0 && x%10==0)){ // for -ve value, and if x!=0 but multiple of 10 (e.x 20,400etc.)
return false;
}
int num = x/10;
if (num == 0){ // for single digit number
return true;
}
int half = 0;
while(x > half){ // remaining numbers
half = half * 10 + x%10;
x = x/10;
}
return( x == half || x == half/10); // for even and odd length numbers
// ******** Answer using string, will need extra space
// String str = String.valueOf(x);
// char[] charArray = str.toCharArray();
// if (str.length() == 1){
// return true;
// }
// int i = 0;
// int j = str.length() -1;
// while (i<j) {
// if (charArray[i] == charArray[j]){
// i++;
// j--;
// }
// else{
// return false;
// }
// }
// return true;
}
}