反转整形数

能通过的

def reverse(x):
    tmp = int(''.join(list(list(str(abs(x)))[::-1])))
    if x >= 0:
        ans = tmp
    else:
        ans = -tmp
    if (ans > 2 ** 31 - 1) or (ans < -2 ** 31):
        return 0
    else:
        return ans

有问题的,希望大家帮忙看下

def reverse(x):
    res = 0
    while x != 0:
        res = res * 10 + x % 10
        x /= 10
        if (res > 2 ** 31 - 1) or (res < -2 ** 31):
            return 0
    return res
print reverse(-123)

问题描述

第二个问题出在,对于-123的处理结果不是-123而是0。调试了一下才发现,-123%10在python中是等于7,而不是3。不知道怎么做,不想加判断,想问下 有没有其他方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值