Leetcode 解题(第7题)

Leetcode 解题(第7题)


给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。

示例1:

输入:123

输出:321

示例2:

输入:-123

输出:-321

示例3:

输入:120

输出:21


解析:这道题主要的注意点。1:32位符号整数的取值范围为 [−231, 231 − 1] 。 2:符号数注意正负号区别。


代码(python3版本)

class Solution:
    def reverse(self, x: int) -> int:
        rem = 0
        a = 0
        int_max = 2**31-1
        int_min = -(2**31)
        if x >=0:
            while(x!=0):
                a = x%10
                if rem > int(int_max/10) or rem == int(int_max/10) and a > 7:
                    return 0 
                    break
                rem=rem*10+a
                x=x//10
            return rem
        else:
            while(x!=0):
                a = x%-10
                if rem < int(int_min/10) or rem == int(int_min/10) and a < -8:
                    return 0
                    break
                rem = rem*10 +a
                x = -(x//-10)
            return rem

补充(Python中正负数取余除法)

正数:

正数的“ / ”," // " ,"%"

print(1234/10)
print(1234//10)
print(1234%10)
print(1234%-10)

结果为依次为123.4 123 4 -6

负数:

负数的“ / ”," // " ,"%"

print(-1234/10)
print(-1234//10)
print(-1234%10)
print(-1234%-10)
print(-(-1234%-10))

结果为依次为-123.4 -124 6 -4 4

你可能感兴趣的:(Leetcode 解题(第7题))