@author: ZZQ
@software: PyCharm
@file: IntReverse.py
@time: 2018/9/16 16:36
要求:整数反转(给定一个 32 位有符号整数,将整数中的数字进行反转)
e.g.: 输入: 123 输出: 321
输入: -123 输出: -321
输入: 120 输出: 21
【假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−2^31, 2^31 − 1]。
根据这个假设,如果反转后的整数溢出,则返回 0。】
需考虑:反转以后数组越界问题
import math
def main(x):
m = 0
if x > 0:
n = x
flag = 1
else:
n = -x
flag = -1
while n > 0:
m = m * 10 + n % 10
n = n / 10
# print m, n
m = m * flag
if m > (math.pow(2, 31)-1):
return 0
if m < - math.pow(2, 31):
return 0
return m
if __name__ == "__main__":
n = 123456789
print main(n)
n = -123
print main(n)