整数的逆序输出可以参考栈的思想,每次将整数的最小位弹出,然后将x缩小10倍后继续弹出,同时不断将将其相加,同时注意溢出,int型的范围是-2^31 ~ 2^31 - 1,此算法时间复杂度O(n),效率好像也不是很高。。。
def reverse(x):
MAX = 2147483648
t = 0
rev = 0
if x >= 0 :
t = x
else:
t = -x
while t != 0:
pop = t % 10 #弹出
t = t / 10
temp = rev * 10 + pop
rev = temp
if x >= 0:
if rev < MAX:
return rev
else:
return 0
else:
if -rev > -MAX:
return -rev
else:
return 0