Description:
Given a 32-bit signed integer, reverse digits of an integer.
Example 1: Input: 123 Output: 321Example 2: Input: -123 Output: -321
Example 3: Input: 120 Output: 21Note:
Assume we are dealing with an environment which couldonly hold integers within the 32-bit signed integer range. For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.分析:将数字按照从右到左不断提取出来,再不断*10将提取的数字赋予相应的权重。
代码如下:
class Solution {
public:
int reverse(int x) {
int ret = 0;
while(x != 0)
{
if(abs(ret) > INT_MAX / 10) //为什么不用判断个位数 因为最大数字的首位只能为2或者1
return 0;
ret *= 10;
ret += x % 10;
x /= 10;
}
return ret;
}
};
【你必须非常努力 才能看起来毫不费力】