class Solution {
public int reverse(int x) {
long result = 0;
while (x != 0) { // 如果是-123,%的值是-3、-2、-1,所以不用單獨考慮負數
result = result * 10 + x % 10;
x /= 10;
}
if (result > Integer.MAX_VALUE || result < Integer.MIN_VALUE) {
return 0;
}
return (int)result;
}
}
Integer.MAX_VALUE = 0x7fffffff; Integer.MIN_VALUE = 0x80000000
class Solution {
public int reverse(int x) {
long result = 0;
while (x != 0) {
result = result * 10 + x % 10;
x /= 10;
}
return (result > 0x7fffffff || result < 0x80000000) ? 0 : (int)result;
}
}
int * 10之後,如果大於Integer.MAX_VALUE,則會變成負數
class Solution {
public int reverse(int x) {
int temp = 0;
while (x != 0) {
if (temp * 10 / 10 != temp) { // 說明本次要越界了 (*10之後如果大於maxValue,會變成負數)
return 0;
}
temp = temp * 10 + x % 10;
x /= 10;
}
return temp;
}
}