整数翻转 Java题解记录
解题原理
1.整数翻转:利用除10余数将数字分解,并将它们按顺序放到数位上去。
负数除10的余数为负数,所以不需要为负数情况多一个判定。
2.范围判定:按要求处理32位的有符号数,即-2147483648~2147483647。在整数翻转过后会出现数值过大的问题,所以需要提前判定。
代码实现
class Solution {
public int reverse(int x) {
int ans = 0;
while(x != 0){
int tmp = x%10;
if(ans>214748364 || (ans==214748364 && tmp>7)){
return 0;
}
if(ans<-214748364 || (ans==214748364 && tmp<-8)){
return 0;
}
x = x/10;
ans = ans*10 + tmp;
}
return ans;
}
}
数字翻转知道原理之后很好操作,但是难点在于对于数值范围的把握。