**
关于LeetCode第7题的题解
**
class Solution {
public int reverse(int x) {
int MAX = 2147483647;
int MIN = –2147483648;
int a=0,b=0;
while (x!=0) {
a=x%10;
x/=10;
if (b>MAX/10 || (b == MAX/10 && a > 7)) {
return 0;
}
if (b<MIN/10 || (b == MIN/10 && a < –8)) {
return 0;
}
b=b*10+a;
}
return b;
}
}
本题没什么好讲的,唯一需要注意的点就是b的位置。
一定需要在先判断之后再进行计算,否则判断就失去意义了。
只有当判断成功后,才能够继续进行反转,否则就直接终止反转。
如果不先进行判断,那么当b比max小,但不是小于一位的情况下,直接就会返回0;






