class Solution {
public:
int reverse(int x) {
long rev = 0;
while (x) {
int pop = x % 10;
x /= 10;
rev = rev * 10 + pop;
}
return (rev > INT_MAX || rev <
INT_MIN) ? 0 :static_cast<int>(rev);//或条件一个以上为真就返回0,都为假即满足条件没有溢出时为rev
}
};
123反转成321,321即为 3 * 100 + 2 * 10 + 1;
为了解决溢出问题,我们使用了long类型来存储结果,最后判断一次即可。