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 yourfunction 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;
}
};【你必须非常努力 才能看起来毫不费力】
本文介绍了一种方法,用于反转32位带符号整数的数字,并提供了一个C++实现示例。该方法适用于环境仅能容纳32位整数的情况,并确保当反转后的整数溢出时返回0。
1236

被折叠的 条评论
为什么被折叠?



