当前位置:   article > 正文

LeetCode 题 -7. 整数反转_给出一个32位数字,将该数每位上的数字反转返回

给出一个32位数字,将该数每位上的数字反转返回

题目

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

示例 1:

输入: 123
输出: 321
  • 1
  • 2

示例 2:

输入: -123
输出: -321
  • 1
  • 2

示例 3:

输入: 120
输出: 21
  • 1
  • 2

注意:

假设我们的环境只能存储得下 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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/程序代码艺术家/article/detail/60482
推荐阅读
相关标签
  

闽ICP备14008679号