给出一个 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 }