题目: 解法: 由于超过整数最大或最小值会产生溢出,因此在乘10进位之前判断是否超过最大最小值除以10,同时还需要判断相等的情况,余数是否超过。
class Solution {
public int reverse(int x
) {
int reverse
= 0;
while(x
!=0){
int a
= x
%10;
if(reverse
>Integer
.MAX_VALUE
/10 || reverse
<Integer
.MIN_VALUE
/10){
return 0;
}
if(reverse
==Integer
.MAX_VALUE
/10 && a
>Integer
.MAX_VALUE
%10){
return 0;
}
if(reverse
==Integer
.MIN_VALUE
/10 && a
<Integer
.MIN_VALUE
%10){
return 0;
}
reverse
= reverse
* 10 + a
;
x
= x
/10;
}
return reverse
;
}
}
转载请注明原文地址:https://blackberry.8miu.com/read-30810.html