【leetcode】力扣 --- 日积月累,每日一题——4 整数反转

奔走的王木木Sir 一生二,二生三,三生万物
优质创作者: 后端开发技术领域
2021-10-24 12:49:27
加精

一、题目

题目来源 https://leetcode-cn.com/problems/reverse-integer/

等级:简单
刚开始别看着人家写的是简单的。那是我应该认为的吗?嗯?

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

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

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

示例 1:

输入:x = 123
输出:321
示例 2:

输入:x = -123
输出:-321
示例 3:

输入:x = 120
输出:21
示例 4:

输入:x = 0
输出:0
 

提示:

-231 <= x <= 231 - 1

二、代码及思路

思路:

先来认清楚这个概念,整形的范围

在JDK中,整形类型是有范围的,最大值为Integer.MAX_VALUE,即2147483647,最小值为Integer.MIN_VALUE -2147483648。
对整形最大值加1,2147483648(超出范围了),那么此时值为多少呢?结果是-2147483648,即是Integer.MIN_VALUE。

不允许出现64位也就是不能有 long

给一个变量用来存储最终的结果,在循环里面进行判断,如果一个值大于最大值/10或者最小值/10了,我这里还判断了一下等于的,去掉后面的判断也没啥问题,等于的时候如果大于了最后一位或者小于最后一位同样就是越界了。还要往里面加值,那必会超出范围。

代码:

class Solution {
    public int reverse(int x) {
        int res = 0;
        while (x != 0) {
            int temp = x % 10;
            if(res > Integer.MAX_VALUE / 10 || (res == Integer.MAX_VALUE / 10 && temp > 7)){
                return 0;
            }
            if (res < Integer.MIN_VALUE / 10 || (res == Integer.MIN_VALUE / 10 && temp < -8)){
                return 0;
            }           
            x /= 10;
            res = res * 10 + temp;
        }
        return res;
    }
}

原文链接 https://blog.csdn.net/qq_43585922/article/details/120932267

欢迎各位一起来交朋友

...全文
79 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
励志小孙 2021-10-27
  • 打赏
  • 举报
回复

学习,打卡

佳乐图文 2021-10-27
  • 打赏
  • 举报
回复

写的很赞,支持一下,打卡

爪哇小白2021 你说的都队 2021-10-24
  • 打赏
  • 举报
回复

你这天天刷题也太猛了啊

奔走的王木木Sir 一生二,二生三,三生万物 2021-10-25
  • 举报
回复
@爪哇小白2021 每天一个😬
zhenghuoyan 流年 2021-10-24
  • 打赏
  • 举报
回复

加油!!!

奔走的王木木Sir 一生二,二生三,三生万物 2021-10-25
  • 举报
回复
@zhenghuoyan 一起加油
哪吒 哪吒 2021-10-24
  • 打赏
  • 举报
回复

很赞,加油,支持

奔走的王木木Sir 一生二,二生三,三生万物 2021-10-24
  • 举报
回复
@哪吒 都给卷起来

513,919

社区成员

发帖
与我相关
我的任务
社区描述
我命由我不由天,来吧,和哪吒一起奋发图强,搬砖工逆袭Java架构师!
社区管理员
  • 哪 吒
  • Baker-Chen
  • 是Lay
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

【Java技能树】和哪吒一起,打卡100天,每天分享一个知识点,一起学习,一起进步,告别CRUD,搬砖工逆袭Java架构师,加油!

【积分榜】积分榜前十每周都有精彩礼包赠送!

【添加微信】备注1024,加入哪吒微信交流群,一起学习交流进大厂

试试用AI创作助手写篇文章吧