Palindrome Number
很快通过了!因为看了题目附带的提示hints~
第一版的代码段如下所示:
bool isPalindrome(int x) {
if(x<0) return false;
long long rev_num=0;
int tmp_x=x;
while(x){
rev_num = rev_num * 10 + x%10;
x=x/10;
}
if(rev_num>0x7FFFFFFF)
return false;
else
return tmp_x==rev_num;
}
但是只打败了30%的用户,于是尝试进一步改进~
bool isPalindrome(int x) {
if(x<0) return false;
int tmp_x=x;
int count=0;
while(tmp_x){
tmp_x=tmp_x/10;
count++;
}
for(int i=0;i<count;i++){
int j=count-1-i;
int start=x/pow(10,i);
int end=x/pow(10,j);
if(start%10!=end%10)
return false;
}
return true;
}
然而结果更差,貌似只有8%了~不改了。。。