LeetCode 题 -7. 整数反转

题目

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

示例 1:

输入: 123
输出: 321

示例 2:

输入: -123
输出: -321

示例 3:

输入: 120
输出: 21

注意:

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

  • 使用python解答主要思路还是转字符串然后切片反转

具体代码如下:

def reverse( x):
    """
    :type x: int
    :rtype: int
    """
    if x == 0:
        return 0
    str_x = str(x)  # 将int型数字转成字符串
    x = ''  # 设一个空字符串
    if str_x[0] == '-':  # 判断该数字是否为负数
        x += '-'  # 如果是负数 让x保存负号  如果不是负数x字符串就还是空的
    x += str_x[len(str_x) - 1::-1].lstrip("0").rstrip("-")
    # 使用切片反转字符串后用lstrip去除字符串开头的0,使用rstrip去除字符串末尾的负号
    # 再和x加到一起
    x = int(x)  # 将字符串转成int型
    if -2 ** 31 < x < 2 ** 31 - 1:  # 最后判断32位字符超限,如果超限返回0
        return x
    return 0

猜你喜欢

转载自blog.csdn.net/weixin_43250623/article/details/88884249