leetcode - python - 反转整数

给定一个 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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。