LeetCode-07 整数反转
题目
https://leetcode.cn/problems/reverse-integer/description/
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−2^31, 2^31 − 1] ,就返回 0。
假设环境不允许存储 64 位整数(有符号或无符号)。
示例 2:
输入:x = -123
输出:-321
示例 3:
输入:x = 120
输出:21
答案
/**
* 给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。
* 如果反转后整数超过 32 位的有符号整数的范围 [−2^31, 2^31 − 1] ,就返回 0。
* 假设环境不允许存储 64 位整数(有符号或无符号)。
* 输入:x = -123
* 输出:-321
**/
public class Demo07 {
public static void main(String[] args) {
System.out.println(reverse(-123));
}
public static int reverse(int x) {
int rev = 0;
while(x!=0) {
int pop = x % 10;
x = x/10;
if(rev> Integer.MAX_VALUE /10 || rev<Integer.MIN_VALUE /10) {
return 0;
}
//整体 * 10之前判断是否超出整型范围
rev = rev * 10 + pop;
}
return rev;
}
}