LeetCode-7、整数反转-简单

LeetCode-7、整数反转-简单

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

注意:

假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−2**31,  2**31 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。

 

代码1:

class Solution:
    def reverse(self, x: int) -> int:
        x_str = str(abs(x))
        x_str_reverse = x_str[::-1]
        x_int_reverse = int(x_str_reverse)
        if x >= 0:
            x_int_reverse *= 1
        else:
            x_int_reverse *= -1
        if -2**31 <= x_int_reverse <= 2**31 - 1:
            return x_int_reverse
        else:
            return 0

 

代码2:

class Solution:
    def reverse(self, x: int) -> int:
        x_abs = abs(x)
        ii = 10
        result = 0
        while x_abs:
            num = x_abs % 10
            x_abs = x_abs // 10
            result = result * ii + num
        if x >= 0:
            result *= 1
        else:
            result *= -1
        if -2**31 <= result <= 2**31 - 1:
            return result
        else:
            return 0

 

示例:

示例 1:

输入: 123
输出: 321

 示例 2:

输入: -123
输出: -321

示例 3:

输入: 120
输出: 21

你可能感兴趣的:(LeetCode题库)