C语言版:
int reverse(int x) {
int n;
int val = 0;
while(x){
n = x % 10;
x /= 10;
//防止数据溢出
if (val > INT_MAX/10 || (val == INT_MAX / 10 && n > 7)) return 0;
if (val < INT_MIN/10 || (val == INT_MIN / 10 && n < -8)) return 0;
val = val * 10 + n;
}
return val;
}
c++版:
class Solution {
public:
int reverse(int x) {
int n;
int val = 0;
while(x){
n = x % 10;
x /= 10;
if (val > INT_MAX/10 || (val == INT_MAX / 10 && n > 7)) return 0;
if (val < INT_MIN/10 || (val == INT_MIN / 10 && n < -8)) return 0;
val = val * 10 + n;
}
return val;
}
};