回文数-Java

题目

判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

示例 1:

输入: 121

输出: true

示例2:

输入: -121

输出: false

解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。

示例3:

输入: 10

输出: false

解释: 从右向左读, 为 01 。因此它不是一个回文数。

进阶:

可否不将整数转为字符串来解决这个问题?


解决思路

1、思考什么数字一定不为回文数?

不难想到,当数字为负数的时候,一定不是回文数。

所以,当x<0时,返回false。

2、如何将数字倒序输出?

核心思想:使用模运算求%10的余数,从而取出该数字的最后一位,将求出的最后一位数字乘以10进一位,并加上下一次的取余数,然后该数字依次整除实现递归运算。

例如:数字123

123%10的余数是3,3*10=30;

然后123/10=12,此时再对12取余,为2;

30+2=32,然后 32*10 =320;

再对12/10=1,最后320+1=321。实现数字倒序输出。

3、对比正序和倒序数字是否相同

例如:对比123与321,发现两数字不相同,得出结论为false,该数字不是回文数。

Java代码实现

class Solution {    

    public boolean isPalindrome(int x) {        

        if (x < 0{            

            return false;        

        }        

        int temp = x;        

        int reverse = 0;        

        while(temp != 0{            

            reverse = reverse*10 + temp%10;            

            temp = temp/10;        

        }        

        return reverse == x;    

    }

}

运行结果

通过测试

Tips

Java中运算符不要搞混:

% 代表模运算,取余。例如:16%3=1

/   代表除法运算,向下取整。例如:16/3=5

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 题目 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 1...
    软萌白甜Hedy阅读 2,055评论 1 0
  • 一、问题 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例 1:输入...
    Djbfifjd阅读 5,857评论 0 2
  • 题目描述 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例 解题思路...
    castlet阅读 155评论 0 0
  • 第9题:回文数 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:...
    ontheway_sh阅读 980评论 0 0
  • 黑色的海岛上悬着一轮又大又圆的明月,毫不嫌弃地把温柔的月色照在这寸草不生的小岛上。一个少年白衣白发,悠闲自如地倚坐...
    小水Vivian阅读 3,130评论 1 5