力扣第7题:整数反转
class Solution(object):
def reverse(self, x):
"""
:type x: int
:rtype: int
"""
x=str(x)
s=''
for i in range(len(x)):
s=x[i]+s
if x[0]=='-' and x[-1]==0:
s='-'+s[1:-1]
elif x[0]=='-':
s='-'+s[:-1]
elif x[-1]==0:
s=s[1:]
if int(s)<-pow(2,31) or int(s)>pow(2,31)-1:
s='0'
return int(s)
我的代码虽然通过了系统测试,但我自己却有点不理解,我觉得我的代码碰到x末尾好几个0时就会出错,因为我的if就判断了一次x[-1]是否为0。比如说当x=12000时,我觉得我的代码返回的值应该是0012,但是,我运行代码返回的却是12
没错,你的代码会把12000变成00021,问题是最后一行有个int(s),那么多余的0自然就没了
不知道你这个问题是否已经解决, 如果还没有解决的话: