LeetCode刷题(简单篇)——9.回文数

该博客讨论了如何判断一个整数是否为回文数。通过检查输入数的正序和倒序是否相同,可以确定其是否为回文。对于负数,直接返回false,0返回true,正数则通过反转后再比较。提供的Java代码示例中,使用了一个简单的算法将整数反转并进行比较。

9. 回文数

给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。

回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。


示例 1:

输入:x = 121
输出:true

示例 2:

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

示例 3:

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

示例 4:

输入:x = -101
输出:false

 


解题思路:

既然是对整数是否为回文数的判断,那么可将整数划分为三类:负整数、0、正整数。

1.负数一定不为回文数,因为反转后负号提到了最后,明显与原数不一致;

2.0一定为回文数,0反转后依然为0;

3.正整数有可能为回文数,但是需要对该数进行反转,若反转后的数与原数相等,那么就为回文数(整数反转的例子见下篇)


class Solution {
    public boolean isPalindrome(int x) {
        //如果输入的数为负数则不会为回文数
        if(x<0) return false;
        //如果为0,返回true
        if(x==0)    return true;
        //如果输入的数为正数,将其反转后进行判断
        long n=0;
        int start=x;
        while( x != 0){
            n=n*10+x%10;
            x=x/10;
        }
        return start==n;
    }
}

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值