利用
result = result * 10 + digit 有可能產(chǎn)生溢出沃暗,
所以在這個操作前:
判斷溢出 result > ((Integer.MAX_VALUE - digit) / 10
或負(fù)數(shù)時判斷溢出:result < ((Integer.MIN_VALUE + digit) / 10
if(sign > 0 && result > ((Integer.MAX_VALUE - last_digit) / 10)) {
// overflow
return 0;
}
else if(sign < 0 && result < (Integer.MIN_VALUE + last_digit) / 10) {
// overflow
// return 0;
}
Example1:
7. Reverse Integer
8. String to Integer (atoi)