我的代码虽然通过了系统测试,我觉得我的代码碰到x末尾好几个0时就会出错

力扣第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

img

没错,你的代码会把12000变成00021,问题是最后一行有个int(s),那么多余的0自然就没了

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^