今天这个题貌似很简单,就不多说了,需要注意的是int类型的范围。
实现:
public class Solution {
public int reverse(int x) {
if(x > -10 && x < 10)
return x;
int temp = 0;
long result = 0;
long xtol = x;
while(true) {
temp = (int) xtol % 10;
result = result * 10 + temp;
if(0 == (xtol /= 10))
break;
}
if(-2147483648 > result || 2147483647 < result)
return 0;
return (int) result;
}
}
Accept之后,看Solution的答案,代码特别简洁,需要学习。
public int reverse(int x) {
int ret = 0;
while (x != 0) {
// handle overflow/underflow
if (Math.abs(ret) > 214748364) {
return 0;
}
ret = ret * 10 + x % 10;
x /= 10;
}
return ret;
}