首页 > 代码库 > [LeetCode]Palindrome Number

[LeetCode]Palindrome Number

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;
    }
};


[LeetCode]Palindrome Number