[LeetCode]Palindrome Number

来源:互联网 发布:淘宝详情页价格说明 编辑:程序博客网 时间:2024/06/02 06:41

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


0 0