给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。

如果反转后整数超过 32 位的有符号整数的范围 [−231,  231 − 1] ,就返回 0。

参考leetcode图片:

 

 


def reverse(x,y):
    res=0
    i=0
    while x != 0:
        t = x % y
        i+=1
        newRes=res*10 +t;
        if (newRes-t)/10 !=res:
            return  0
        res=newRes
        x=int(x/10)
    return res
if __name__ == '__main__':
    print(reverse(-1652936,-10))

  注:没写整数范围。10或者-10看整数是负数还是整数

方法二:

转换为字符串

def reverse1(x):
    s=str(x)
    if s[0] =='-':
        s_rev=s[0]+s[-1:-len(s):-1]
    else:
        s_rev=s[::-1]
    x_rev=int(s_rev)
    if -2 ** 31 <= x_rev <= 2 ** 31 - 1:
        return x_rev
    return 0

if __name__ == '__main__':
    print(reverse1(192306000))