问题:
Determine whether an integer is a palindrome. Do this without extra space.
代码:
class Solution {
public:
bool isPalindrome(int x) {
if(x<0)
return false;
int n=1;
int temp = x;
while(temp/10!=0){
temp=temp/10;
n++;
}
for(int i=0;i<n/2;i++){
int a = i;
int b = n-1-i;
if(getInt(x,a)!=getInt(x,b)){
return false;
}
}
return true;
}
};
问题是确定一个数是不是回文数,首先,我们要排除负数,所以当x小于0的时候,我们return false
然后确定这个回文数有几位,即 :
while(temp/10!=0){
temp=temp/10;
n++;
}
然后取前一半利用getint函数比较前一半和后一半,如果不同返回FALSE
否则返回true