class Solution {
public:
int reverse(int x) {
if (abs(x) < 10){
return x;
}
int rtn = 0;
while (x != 0){
int temp = x % 10;
if (rtn > INT_MAX / 10 or (rtn == INT_MAX / 10 and temp > 7)){
return 0;
}
if (rtn < INT_MIN / 10 or (rtn == INT_MIN / 10 and temp < -8)){
return 0;
}
rtn = rtn * 10 + temp;
x /= 10;
}
return rtn;
}
};
这道题整体上来说真的是细节是魔鬼,corner case要你命。后续会开一个记录去对每一类的题进行记录和整理,至少这道题引出了整数越界的判定条件,这个还是要背下来的。