题目
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
注意
假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。
参考大佬的写法,自己实现了一遍,有很多需要注意的地方:
- 怎么实现int数的反转,通过%10的操作,将数的个位数加到res上面
- 然后每次res乘以10
代码
class Solution {
public:
int reverse(int x) {
int res = 0;
do {
// 防止越界
if(res > INT_MAX/10 || res < INT_MIN/10) return 0;
// 每次把res的个位设置为0 然后加上当前x的个位
res = res * 10 + x % 10;
}
while(x /= 10);
return res;
}
};