第一次写的: 结果超时
bool isPalindrome(int x) {
if(x<0){
return false;
}
if(x==0){
return true;
}
int mi=1;
while((x/static_cast<int>(pow(10,mi)))>0)mi++;
int left=mi-1;
int right=0;
int rightNum, leftNum;
while(right<left){
rightNum=x/static_cast<int>(pow(10,right))%10;
leftNum=x/static_cast<int>(pow(10,left))%10;
if(leftNum!=rightNum)
break;
rightNum++;
leftNum--;
}
if(right<left)
return false;
return true;
}
第二次:
Runtime: 12 ms, faster than 72.61% of C++ online submissions for Palindrome Number.
Memory Usage: 8.1 MB, less than 90.00% of C++ online submissions for Palindrome Number.
bool isPalindrome(int x) {
if(x<0){
return false;
}
int bak=x;
long reverX=0;
while(x>0){
if((x%10+reverX*10)>INT_MAX){
return false;
}
reverX=reverX*10+x%10;
x/=10;
}
return bak==reverX;
}