给出一个32位的有符号整数,需要将这个整数中每位上的数字进行反转。
假设环境只能存储32位有符号整数,如果反转后超过范围,就返回0.
示例:
输入123
输出321
输入120
输出21
def reverse(x):
if -2**31<=x<0:
# 将x转换为整数
x=str(x)[1:]
# 将字符串x倒序,并截取字符串左边的指定字符0
x=x[::-1].lstrip('0')
# 将x转为整数,判断范围
if int(x)>2**31:
return 0
else:
return ('-'+x)
elif x==0:
return 0
elif 0<x<2**31:
x=str(x)[::-1].lstrip('0')
# 将x转为整数,判断范围
if int(x) >= 2 ** 31:
return 0
else:
return int(x)
else:
return 0
if __name__=="__main__":
x=-15487937897998745467981325879
# print (2**31)
# if -2**31>-15487937897998745467981325879:
# print('超出范围')
x=reverse(x)
print(x)