#LeetCode原题地址:https://leetcode-cn.com/problems/reverse-integer/
#给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。
#如果反转后整数超过 32 位的有符号整数的范围 [?231, 231 ? 1] ,就返回 0。
#数据值以0为边界进行判断
#方法一 切片
num, renum= 2147483649, 0
if num > 0:
renum = int(str(num)[::-1])
elif num <0:
renum=-int(str(abs(num))[::-1])
elif num==0:
renum=num
#边界判断
max_value = 2**31 - 1
min_value = -2**31
if renum>2**31 - 1 or renum <-2**31:
renum = 0
print(renum)
#方法二 整数反转reverse
num, renum= 2147483649, 0
numlist = list(str(num))
numlist.reverse()
if num > 0:
renum=int(‘‘.join(numlist))
elif num <0:
renum=-int(‘‘.join(numlist[1:]))
elif num==0:
renum=num
if renum>2**31 - 1 or renum <-2**31:
renum = 0
print(renum)
#方法三 递归
num, renum= 2147483649, 0
strnum = str(num)
def reversea(strnum):
if strnum == ‘‘:
return strnum
else:
return reversea(strnum[1:])+strnum[0]
print(reversea(strnum))
整数反转