leetcode刷题---数与位---回文数

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

示例 1:

输入: 121
输出: true

示例 2:

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

示例 3:

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

这题可以用之前做过的整数反转的思路来完成

class Solution {
    
    
    public boolean isPalindrome(int x) {
    
    

        if(x < 0)return false;


        int pop = 0;
        int reve = 0;
        int cou = x;

        while(x != 0){
    
    
            
            pop = x % 10;
            x /= 10;
            if(reve > Integer.MAX_VALUE / 10 ||(reve == Integer.MAX_VALUE&&pop > Integer.MAX_VALUE % 10))return false;
            if(reve <Integer.MIN_VALUE / 10 || (reve == Integer.MIN_VALUE / 10&&pop < Integer.MIN_VALUE % 10))return false;

            reve = reve * 10 + pop;

        }
        return (reve == cou?true:false);


    }
}

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/palindrome-number
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

猜你喜欢

转载自blog.csdn.net/weixin_46428711/article/details/111725716