1.整数反转
//2^31-1=2147483647,-2^31=-2147483648
//Integer溢出判断是因为MAX_VALUE : 2147483647 MIN_VALUE : -2147483648 他要判断最后一位不要大于 7 和 不要小于8
public class ReserveNum07 {
public int reverse(int x) {
int rev = 0;
while (x != 0) {
int pop = x % 10;
x /= 10;
//rev > Integer.MAX_VALUE/10 此数必须为32位; rev == Integer.MAX_VALUE / 10 && pop > 7 此数必须小于int最大值
if (rev > Integer.MAX_VALUE/10 || (rev == Integer.MAX_VALUE / 10 && pop > 7)) return 0;
//rev < Integer.MIN_VALUE/10 此数必须为32位; rev == Integer.MIN_VALUE / 10 && pop < -8 此数必须大于int最小值
if (rev < Integer.MIN_VALUE/10 || (rev == Integer.MIN_VALUE / 10 && pop < -8)) return 0;
rev = rev * 10 + pop;
}
return rev;
}
}
2.LeetCode测试结果