其他分享
首页 > 其他分享> > 小白刷题——回文数

小白刷题——回文数

作者:互联网

JAVA小白自学中

回文数

题目

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

标题示例

示例 1:
输入: 121
输出: true

示例 2:
输入: -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。

示例 3:
输入: 10
输出: false
解释: 从右向左读, 为 01 。因此它不是一个回文数。

代码

class Solution {
    public boolean isPalindrome(int x) {
        if (x<0){
            return false;
        }
        if (x%10==0&&x!=0){
            return false;
        }
        int a,b;
        b=0;
        for (int i = x; i != 0; i = i / 10) {
            a = i % 10;
            if (i < 10) {
                b = b + a;
            } else {
                b = (a + b) * 10;
            }
        }
        if (b==x){
            return true;
        }
        return false;
    }
}

解题思路

判断一个整数是否是回文数。
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
根据要求
输入: -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
故先将x<0的数直接排除在外

然后根据要求
输入: 10
输出: false
解释: 从右向左读, 为 01 。因此它不是一个回文数。
故先将x能被10整除又不等于0的数直接排除

做完前面两步现在就是比较x与其反转过来的数了
a:对10取余,储蓄本轮数据;
b:保存上一轮数据;
i:循环判断保存X的值并判断X与除10(步进)
输出异常为false,要不然最后一个if无用

声明

以上内容为本人对此题的处理方法
若有侵权,请在下方回复中举证并@本人删除文章
本人小白一枚,自学的JAVA
愿大家都能找到比我更加优秀的方法

在此鸣谢

leetcode平台与CSDN平台的支持
还有各位的捧场

标签:10,false,示例,小白刷题,121,从右,回文
来源: https://blog.csdn.net/weixin_53188968/article/details/110506623