LeetCode:Palindrome Number

来源:互联网 发布:生活中温暖的小事知乎 编辑:程序博客网 时间:2024/06/16 14:48

睡觉前看了一眼题目,没找到思路,就睡了,没想到早上做梦梦到算法,然后惊醒,随后一次性提交AC,实在难得。判断回文数,首先要注意负数不是回文数,其次就是如何对比头尾的数字是否相同。我的思路是,通过常规的取余的方法可以得到最低位的数字,那么最高位的数字可以通过整除10的倍数。那么这个10的倍数如何得到呢?可以通过计算X的位数得到。具体代码如下:

class Solution {public:    bool isPalindrome(int x) {        int count,total;        int m,n;        count=0;        total=x;        if(x<0)            return false;        while(x!=0)//得到x的位数        {            count++;            x=x/10;        }        x=total;        while(x!=0)        {            m=x%10;            n=(int)(total/pow((double)10,(double)count-1))%10;//得到需要对比的数字,该数字位于最低位            if(m!=n)                return false;            x=x/10;            count--;        }        return true;            }};


0 0
原创粉丝点击