[9]Palindrome Number

来源:互联网 发布:锐捷网络招聘 编辑:程序博客网 时间:2024/05/21 13:58

【题目描述】

Determine whether an integer is a palindrome. Do this without extra space.

【思路】

我的思路属于比较笨的,依次比较头尾的数是否一样,值得注意的是要分偶数位和奇数位数来讨论,不过时间还好,76ms。

有几个算是优化的点吧,比如如果x%10==0或x<0就直接false,如果x为0则为true。

【代码】

class Solution {public:    bool isPalindrome(int x) {        if(!x) return true;        if(x<0||x%10==0) return false;        int n=0;        int tmp=x;        int n1,n2;        bool flag=true;        while(tmp){            n++;            tmp=tmp/10;        }        int div1=pow(10,n-1);        if(n%2==0){            while(div1){                n1=x/div1;                n2=x%10;                x=(x%div1)/10;                div1/=100;                if(n1!=n2) return false;            }        }        else{            while(div1!=1){                n1=x/div1;                n2=x%10;                x=(x%div1)/10;                div1/=100;                if(n1!=n2) return false;            }        }        return true;    }};


0 0