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整数变成字符串,按list进行翻转,然后再转成int
class Solution(object):
def reverse(self, x):
"""
:type x: int
:rtype: int
"""
flag = 0
if x<0:
flag = 1
res = ""
x = str(abs(x))
for i in range(1,len(x)+1):
res += x[-i]
if int(res) > 2147483648:
return 0
if flag == 0:
return int(res)
else:
return -int(res)
解法二:先把数字求绝对值x,然后x%10取最后一位,然后ans = ans*10 + x%10,加上最后一位。然后x去掉最后一位。知道x = 0.要注意的时候,超出32位int类型的时候设置等于0就行了。
class Solution:
# @return an integer
def reverse(self, x):
answer = 0
sign = 1 if x > 0 else -1
x = abs(x)
while x > 0:
answer = answer * 10 + x % 10
x /= 10
return sign*answer