LeetCode--Palindrome Number

来源:互联网 发布:mac自带画图工具 编辑:程序博客网 时间:2024/06/06 13:11

问题

这是一个求解回文的题。

分析

  1. 负数是否是回文?
  2. 个位数一定是回文,如果是个位数可以直接返回,但是下面代码并未这么做
  3. 算法的核心思想就是,不停的取出数的最高位和最低位比较,如果相同,掐头去尾再继续比较,如果一直是相等的,那么就是回文
public boolean isPalindrome(int x)    {           //when x is negative,return false        if(x < 0)         {            return false;        }        //len为数的权,这里用len表示。例如,123的len==100,利于计算        int len = 1;        int x1 = x/10;        while(x1 != 0)        {            len *= 10;              x1 /= 10;        }        //key part of algorithm        int left = 0;        int right = 0;        int x2 = x;        while(x2 != 0 )        {            right = x2 % 10;            left = x2/ len;            if(right != left)            {                return false;            }            else            {                x2 %= len;                x2 /= 10;                len /= 100;             }        }        return true;    }
原创粉丝点击