基础算法:整数反转

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。

注意:

假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231,  231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。

Integer.MAX_VALUE:  21474836487

Integer.MIN_VALUE: -2147483648

 1 class Solution {
 2     public int reverse(int x) {
 3         int revNum = 0;
 4         while(x != 0) {
 5             int remainder = x % 10;
 6             x = x /10;
 7             if (revNum > Integer.MAX_VALUE / 10 || revNum == Integer.MAX_VALUE / 10 && remainder > 7) {
 8                 return 0;
 9             }
10             if (revNum < Integer.MIN_VALUE / 10 || revNum == Integer.MIN_VALUE / 10 && remainder < -8) {
11                 return 0;
12             }
13             revNum = revNum * 10 + remainder;
14         }
15         return revNum;
16     }
17 }
原文地址:https://www.cnblogs.com/wangyinqia/p/12958166.html