标签:10 digit return Reverse 代码 rev Solution Integer Leetcode
7.Reverse Integer
起初没注意到下方的注释,理解错误了意思。
注释的意思是“假设处理这个问题是在智能存储32位证书的环境中,有符号整型的范围是,当输入超过这个范围返回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)
运行结果:
感觉很对,要成了!!马上,这个“神奇的数字”出现了 1534236469 。我的程序居然不能得到正确结果??
Why?Why?Why?
我用自己仅存的数学知识,打开了电脑的计算器,经过严密的键盘按键输入运算,发现 。也就是说,程序没问题,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
暂时还没有发现,为什么他的代码可以用,哪位大哥大侠提供下意见。
标签:10,digit,return,Reverse,代码,rev,Solution,Integer,Leetcode 来源: https://blog.csdn.net/qq_25863199/article/details/88374670
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。