原题链接: https://leetcode.com/problems/reverse-integer/
一:原题内容
Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
二:分析理解
我们需要考虑反转后的数可能会溢出int给出的大小,而且这题也没有说明如果反转溢出应该怎么办,看了别人的代码才知道是输出0。
三:AC代码
class Solution
{
public:
int reverse(int x)
{
int y = 0;
int n;
while (x != 0)
{
n = x % 10;
if (y > INT_MAX / 10 || y < INT_MIN / 10)
{
return 0;
}
y = y * 10 + n;
x /= 10;
}
return y;
}
};
class Solution:
# @return an integer
def reverse(self, x):
revx = int(str(abs(x))[::-1])
if revx > math.pow(2, 31):
return 0
else:
return revx * cmp(x, 0)