leetcode - python - 反转整数

2018-09-05  本文已影响0人  creamelody
给定一个 32 位有符号整数,将整数中的数字进行反转。

示例 1:
输入: 123
输出: 321

示例 2:
输入: -123
输出: -321

示例 3:
输入: 120
输出: 21

注意:
假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231 − 1]。根据这个假设,如果反转后的整数溢出,则返回 0。

方法一:数学计算法
def reverse(x):
        result = 0
        flag  = 1
        if x<0:
                x = -x
                flag = -1
        while (x):
                a = x%10
                result = result * 10 + a
                x = x // 10
                if result>2**31-1 or result<-2**31:
                        flag = 0
        if flag == -1:
                return -result
        if flag == 1:
                return result
        if flag ==0:
                return 0
##测试
>>> reverse(123456789013)
0
>>> reverse(8090)
908
>>> reverse(-906520)
-25609
方法二:字符串切片反转
def reverse(x):
        if x>=0:
                x = int(str(x)[::-1])
        if x>2**31-1:
                return 0
        else:
                return x
    else:
        x = -int(str(-x)[::-1])
        if x<-2**31:
                return 0
        else:
                return x
##测试
>>> reverse(9080)
809
>>> reverse(-1230450)
-540321
>>> reverse(1534236469)
0
上一篇 下一篇

猜你喜欢

热点阅读