Determine whether an integer is a palindrome. Do this without extra space.
//注意%运算符必须先static_cast成int型
class Solution {
public:
bool isPalindrome(int x) {
if(x<0) return false;
int len=0;
int tem_x=x;
//O(n)
while(tem_x){
++len;
tem_x/=10;
}
int times=0;
int up_num,down_num;
int up_bit,down_bit;
while(times<(len+1)/2 ){
up_num=x%static_cast<int>(pow(10,len-times));
up_bit=up_num/static_cast<int>(pow(10,len-times-1));
down_num=x%static_cast<int>(pow(10,times+1));
down_bit=down_num/static_cast<int>(pow(10,times));
if(up_bit!=down_bit) return false;
++times;
}
return true;
}
};