栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

LeetCode07整数反转(JAVA)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

LeetCode07整数反转(JAVA)

LeetCode题解(JAVA)

LeetCode07——整数反转
  • LeetCode题解(JAVA)
  • 题目描述
  • 思路
  • 代码实现


题目描述

给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。

如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。

假设环境不允许存储 64 位整数(有符号或无符号)。


提示:以下是本篇文章正文内容,下面案例可供参考

思路

整数反转,就是将原先在末尾的数字,移动到首位;倒数第二位数移动至正数第二位……

若原整数为num1,反转后的整数为num2;
那么num2的首位数即是num1的末位数,num2的第二位数即是num1的倒数第二位数。

举个例子,整数45678,反转后应该是87654,则反转过程如图

再通过数学的角度说明:

所以,每一轮次计算整数的末位数:num % 10,接着num / 10,为下一轮做准备,循环直到num / 10 = = 0

最后,注意内存溢出的问题即可。

代码实现
class Solution {
    public int reverse(int x) {
        
        long t = x;
        long res=0;

        //求每一位,叠加
        while(t != 0){
            res = res * 10 + t % 10;
            t = t / 10;
        }
        //判断是否溢出
        if(res < Integer.MIN_VALUE || res > Integer.MAX_VALUE){
            return 0;
        }
        return (int)res;
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/880186.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号