Q:Determine whether an integer is a palindrome. Do this without extra space.
这道题也是基础题,判断一个数是否是回文数,条件是不能使用额外的空间,意思就是说,你不能把一个Intege转换成string,然后对string进行回文字符串的判断。
另外,如果用Reverse Integer的方法,可能会造成数值溢出,比如判断1423568769是否是回文数,反转之后就是9678654321,超出INT_MAX,溢出。
最后,回文数不包含负数。
我的思路是:(对非负数的处理)
不断X对10取余,直到X为0;迭代的过程中将结果乘10,并加上下一次的余数。最后得到的结果与原X比较,相等则为回文数,否则不是。
class Solution {
public:
bool isPalindrome(int x) {
if (x < 0)
return false;
x = abs(x);
int xxx = x;
int xx = 0;
while (x != 0){
xx = xx * 10 + x % 10;
x = x / 10;
}
if (xxx == xx)
return true;
else
return false;
}
};原文:http://blog.csdn.net/kaitankedemao/article/details/43339443