描述:整数反转
注意:1、正负数的处理2、尾数为0的处理
代码:以下实现以字符转切片反转方式实现
def revserse(x):
z = list(str(x))
print(z)
if z[0]!='-':
print("z:",z)
strx = str(x)
if z[len(strx) - 1] == 0:
revserse_strx = strx[::-2]
if z[len(strx) - 1] != 0:
revserse_strx = strx[::-1]
revserse_x = int(revserse_strx)
print("revserse_x:", revserse_x)
if z[0]=='-':
y = abs(x)
strx = str(y)
if z[len(strx) - 1] == 0:
revserse_strx = strx[::-2]
if z[len(strx) - 1] != 0:
revserse_strx = strx[::-1]
revserse_strx='-'+revserse_strx
revserse_x = int(revserse_strx)
print("revserse_x:", revserse_x)
if __name__ == '__main__':
x=-123450
revserse(x)
运行结果:
revserse_x: -54321
Process finished with exit code 0
有些地方有额外要求,要求整数最大32位。
需要加入防溢出的设置:
def reverse(self, x):
z = list(str(x))
if z[0]!='-':
strx = str(x)
if z[len(strx) - 1] == 0:
revserse_strx = strx[::-2]
if z[len(strx) - 1] != 0:
revserse_strx = strx[::-1]
revserse_x = int(revserse_strx)
return revserse_x if -2147483648<revserse_x<2147483647 else 0
if z[0]=='-':
y = abs(x)
strx = str(y)
if z[len(strx) - 1] == 0:
revserse_strx = strx[::-2]
if z[len(strx) - 1] != 0:
revserse_strx = strx[::-1]
revserse_strx='-'+revserse_strx
revserse_x = int(revserse_strx)
return revserse_x if -2147483648<revserse_x<2147483647 else 0