Reverse Integer 413
Question
Reverse digits of an integer. Returns 0 when the reversed integer overflows (signed 32-bit integer).
Example
Given x = 123, return 321
Given x = -123, return -321
Solution
sum表示之前取的数字的组合,只要不断地取当前数字的最低位,加到sum 10中,直到当前数字为0为止。其中有一点需要注意,在将当前最低位加入到sum 10后,要再将新的结果/10看能不能得到原来的sum,若得不到原来的数,则说明已经溢出(-2^32~2^32。-35 % 10 = -5。
代码如下:
public class Solution {
/**
* @param n the integer to be reversed
* @return the reversed integer
*/
public int reverseInteger(int n) {
// Write your code here
int sum = 0;
while(n != 0){
int temp = sum * 10 + n % 10;
n /= 10;
//若*10之后的数再/10得不到原来的数,则说明已经溢出(-2^32~2^32)
if(temp / 10 != sum){
sum = 0;
break;
}
sum = temp;
}
return sum;
}
}