题目
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。
假设环境不允许存储 64 位整数(有符号或无符号)。
7. 整数反转 - 力扣(LeetCode)
思路
题目给了我们一个整数x,我们需要把他进行反转,对于这个x,我们需要每次弹出x最低位,将最低位插入到result的末尾。这样,x的低位就变成了result的高位,也就完成了反转。
需要注意的是我们要判断当前的结果是否越界。
代码
class Solution {public int reverse(int x) {int result=0;int INT_MAX=Integer.MAX_VALUE;int INT_MIN=Integer.MIN_VALUE;while(x!=0){int num=x%10;x/=10;if (result>INT_MAX/10 || (result==INT_MAX/10 && num > INT_MAX%10)){return 0;}if (result<INT_MIN/10 || (result==INT_MIN/10 && num < INT_MIN%10)){return 0;}result=result*10+num;}return result;}
}