【Leetcode】7.Reverse Integer

7.Reverse Integer

【Leetcode】7.Reverse Integer

起初没注意到下方的注释,理解错误了意思。

注释的意思是“假设处理这个问题是在智能存储32位证书的环境中,有符号整型的范围是【Leetcode】7.Reverse Integer,当输入超过这个范围返回0. ”

以下贴出我的代码:

class Solution(object):
    def reverse(self, x):
        """
        :type x: int
        :rtype: int
        """
        if x < pow(-2,31) or x >(pow(2,31)-1):
            return 0

        y=str(abs(x))
        y=int(y[::-1])
        return (y if x>0 else -y)

运行结果:

【Leetcode】7.Reverse Integer【Leetcode】7.Reverse Integer【Leetcode】7.Reverse Integer

感觉很对,要成了!!马上,这个“神奇的数字”出现了 1534236469 。我的程序居然不能得到正确结果??

【Leetcode】7.Reverse Integer      Why?Why?Why?

我用自己仅存的数学知识,打开了电脑的计算器,经过严密的键盘按键输入运算,发现  【Leetcode】7.Reverse Integer。也就是说,程序没问题,leetcode答案也没问题(假设在只能存储32位有符号类型下,而python是无限制存储)。

按理说,这个问题已经结束了,我的代码没有问题,嗯,对,没有问题。

然后真正的问题现在才来,这也是我这次要做记录的原因,为什么有个Solution中的python代码可以运行????

 

Solution中不愿被透露姓名的某提供的python代码:

class Solution(object):
    def reverse(self, x):
        b = 2 ** 31
        neg_b = -1 * b 

        rev = 0 

        if x > 0:
            while x != 0:
                digit = x % 10 
                x //= 10 
                rev = rev * 10 + digit 
        else:
            x = abs(x)
            while x != 0:
                digit = x % 10 
                x //= 10 
                rev = rev * 10 + digit
            rev *= -1

        if rev > b or rev < neg_b:
            return 0 
        return rev 

暂时还没有发现,为什么他的代码可以用,哪位大哥大侠提供下意见。

上一篇:不定时更新,最近用到的一些网页或者代码


下一篇:广义线性模型--1.1.普通最小二乘法