原题链接:Reverse Integer
题目内容: Given a 32-bit signed integer, reverse digits of an integer.
Example 1:
Input: 123
Output: 321
Example 2:
Input: -123
Output: -321
Example 3:
Input: 120
Output: 21
Note:
Assume we are dealing with an environment which could only 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.
翻转整数,注意int类型范围
C++
class Solution {
public:
int reverse(int x) {
int res = 0;
while (x != 0) {
if (abs(res) > INT_MAX/10) return 0;
res = res*10 + x%10;
x /= 10;
}
return res;
}
};
Python
class Solution(object):
def reverse(self, x):
"""
:type x: int
:rtype: int
"""
x = int(str(x)[::-1]) if x >= 0 else - int(str(-x)[::-1])
return x if x < 2147483647 and x >= -2147483648 else 0
Leetcode的sys.maxint数值为9223372036854775807,所以还是直接使用32位的数字范围。