Java教程

每日一题-Day14-整数反转

本文主要是介绍每日一题-Day14-整数反转,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

题目

给定数字x,输出 反转后的数字,不能超过int的存储范围

解题思路

​ 求模取余

​ 将数字x进行10的求模取余,再将取得的余数每次*10加上新的余数,注意点在于不能超过int的存储范围,即-2147483648到+2147483647,所以当res为214748364时,下一个余数不能超过7,否则会超过范围,同理可得负数的判定方式

class Solution {
    public int reverse(int x) {
        int res = 0;
        while(x!=0) {
            //每次取末尾数字
            int tmp = x%10;
            //判断是否 大于 最大32位整数
            if (res>214748364 || (res==214748364 && tmp>7)) {
                return 0;
            }
            //判断是否 小于 最小32位整数
            if (res<-214748364 || (res==-214748364 && tmp<-8)) {
                return 0;
            }
            res = res*10 + tmp;
            x /= 10;
        }
        return res;
    }
}

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/reverse-integer/submissions/

更详细的题解:
链接:https://leetcode-cn.com/problems/reverse-integer/solution/tu-jie-7-zheng-shu-fan-zhuan-by-wang_ni_ma/

这篇关于每日一题-Day14-整数反转的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!