LeetCode 7 . 整数反转(判断整数溢出int范围)

该博客介绍了LeetCode第7题的解决方案,即如何反转整数并确保结果在int范围内。作者指出,可以使用类似于栈的数学方法解决此问题,同时在转换过程中检查是否有整数溢出。文章提到了INT_MAX和INT_MIN作为溢出边界,并给出了判断溢出的条件。当反转的整数超过边界除以10的值时,即可判断溢出。博客还提供了相关的代码实现。
摘要由CSDN通过智能技术生成

题目描述

给出一个整数,将其反转,但是要注意反转之后的整数大小一定要符合int范围内,如果溢出就返回0
题目链接
思路:我们可以类似于栈的方式一样用数学方法来解决这个问题,但是在转化过程中要判断是否整数溢出的情况,这里用rev来接收每次得到整数的最后一位pop,即rev = rev*10 + pop,然后用rev的值去判断是否存在整数溢出
INT_MAX = 2^31-1 = 2147483647
INT_MIN = -2^31=-2147483648
当rev > INT_MAX/10,那么这个反转整数必然溢出
同理rev < INT_MIN/10,那么这个反转整数也溢出
如果rev = INT_MAX/10 或 INT_MIN/10,那么我们只需要比较最后一位。正数:pop > 7就溢出;负数:pop < -8就溢出
代码如下

int reverse(int x
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值