细节:
提前判断result如果下一次溢出,直接返回0;
不能使用下面的语句:
if(result * 10 + (x % 10) > INT_MAX)
class Solution {
public:
int reverse(int x) {
bool isNegtive = x >= 0 ? false : true;
x = abs(x);
int result = 0;
while(x > 0) {
if(result > (INT_MAX - x % 10) / 10)
return 0;
result = result * 10 + (x % 10);
x /= 10;
}
return isNegtive ? -result: result;
}
};