# @Time: 2018/6/21
# @Author: xfLi
"""
问题:给定一个 32 位有符号整数,将整数中的数字进行反转。
示例 1:
输入: 123
输出: 321
示例 2:
输入: -123
输出: -321
示例 3:
输入: 120
输出: 21
假设我们的环境只能存储 32 位有符号整数,其数值范围是 [-2147483648, 2147483647]。
根据这个假设,如果反转后的整数溢出,则返回 0。
"""
#方法一:求余数
def reverse(x):
negative = True
num = 0
if x < 10 and x > -10:
return x
if x < 0: #x为负数标记negative
negative = False
x = -x
while x != 0:
num = num*10 + (x % 10)
x = int(x / 10)
if not negative:
num = -num
return num if num < 2147483648 and num >= -2147483648 else 0 #是否溢出
#方法二:转化为字符串
def revers(x):
x = int(str(x)[::-1]) if x >= 0 else -int(str(-x)[::-1])
return x if x < 2147483648 and x >= -2147483648 else 0
if __name__ == '__main__':
result = revers(-12234)
print(result)