Determine whether an integer is a palindrome. Do this without extra space.
Easy to make mistakes.....
There are more than two ways to handle it.
// Handle integer as an integer.
int integerMask(int x) {
int mask = 1;
while(x / 10 > 0) {
mask = mask * 10;
x = x / 10;
}
return mask;
}
bool isPalindrome(int x) {
if(x < 0) return false; // if negative, it is absolutely not palindrome then.
int mask = integerMask(x);
while(x > 0) {
if(x % 10 != (x / mask)) return false;
x = x % mask;
x = x / 10;
mask = mask / 100;
}
return true;
}
// Change the integer into string type.
bool isPalindrome(string x) {
int i = 0;
int j = x.size() - 1;
while(i < j) {
if(x[i] != x[j]) return false;
i++;
j--;
}
return true;
}
bool isPalindrome(int x) {
string tmp = to_string(x);
return isPalindrome(tmp);
}