leetCode9:判断一个整数是否是回文数的Java代码实现

//问题描述:判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
// 示例 1:
// 输入: 121
//输出: true
// 输入: -121
//输出: false
//解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
// 示例 3:
// 输入: 10
//输出: false
//解释: 从右向左读, 为 01 。因此它不是一个回文数。
这是一道判断整数是否为回文数的问题,其实就是翻转过来是否等于原来的数,第一反应是将整数当成字符串处理,切割判断,但如果做过整数翻转这一题后,会发现回文数问题就是和整数翻转问题是一样的思路?如果得到了一个数翻转过来的整数,再判断和原整数是否相等即可确定是否为回文数了,关键如何去解决对整数翻转是解决题目的关键。
整数反转的关键代码为:

            int res = 0;
            while (x != 0) {
                res = x % 10 + res * 10;
                x /= 10;
            }

其具体思路为:比如x=121这个数,先设立一个变量res=0,当x>0时不断对x取余,121%10=1,然后令res=121%10+10res=1,同时对x不断除10取整,保证取到倒数上一位数, res=12%10+110 = 12,最后 res=1%10+12*10=121。
因此回文串的整体代码为:

    class Solution {
        public boolean isPalindrome(int x) {
            int temp =x;
            if (x < 0) return false;
            int res = 0;
            while (x != 0) {
                res = x % 10 + res * 10;
                x /= 10;
            }
            if (res == temp){
                return true;
            }else{
                return false;
            }
        }
    }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值