LeetCode9. 回文数字

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

实例:

输入:121

输出:true

输入:-121

输出:false

输入:10

输出:false

思路:

首先,负数不是回文数,因为有个负号

剩下的就是整数,把数字翻转一下,和原来的一样就是回文

反转时,当有溢出时,返回负数(因为负数不会和正数相等)

代码:

class Solution {
    public boolean isPalindrome(int x) {
        if(x<0){
            return false;
        }   
        return x==reverse(x)?true : false;
    }
    
    public int reverse(int x){
        int res=0;
        while(x!=0){
            int tail=x%10;
            int newres=res*10+tail;
                if((newres-tail)/10!=res){
                    return -1;//代表这不是回文数
                }
            res=newres;
            x/=10;
        }
        return res;
    }
}

猜你喜欢

转载自blog.csdn.net/easy_purple/article/details/82563559