【Leetcode】Palindrome Number

来源:互联网 发布:python网页版安装 编辑:程序博客网 时间:2024/06/06 16:41

问题

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

代码

class Solution {public:    bool isPalindrome(int x) {if (x < 0) {return false;}        long long div =1;long long x_back = x;while (x_back / div >= 1) {div *=10;}div/=10;//cout<<"div:"<<div<<endl;while (div > 1) {if ((x/div)%10 != x_back % 10) {return false;}div/=10;x_back /= 10;//cout<<"div:   "<<div<<endl;//cout<<"x back : "<<x_back<<endl;}return true;    }};

分析

首先得找到x的位数,比如123,找到100,然后依次除以100%10 , 除以 10%10 就可以很方便的从高位取到低位,同样低位到高位则是 x/=10; x%10 ,依次这样两个来回对比就完了。

其实有个办法优化最后一个循环,到1/2 (logN),最后还是O(logn) , 感觉没他大关系,所以我就算了. 现在时间复杂度是 O(logN).

总结

数字题目,没有难度,只是基础罢了。

0 0
原创粉丝点击