LeetCode 007 整数反转
问题描述
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
示例 1:
输入: 123
输出: 321
示例 2:
输入: -123
输出: -321
示例 3:
输入: 120
输出: 21
代码
class Solution {
public:
int reverse(int x) {
long result = 0;
while(x != 0)
{
int a = x % 10; // 拿到最后一位数
result = result * 10 + a; // 上次结果 * 10 + 最后一位数
x /= 10; // 去除最后一位 它已经处理好了
}
return (result > INT_MAX || result < INT_MIN)? 0 : result;
}
};
分析
- 运算过程已经注释了。不太明白可以手算一下。
- 其实就是用余数拿到低位,然后 * 10 进位往前放。类似的题目 PAT 中也见过。
转自
VSCode 上自动 fetch 到的方法 :4ms C++ solution,easy to understand。作者:morning_color