跳到主要内容

反转一个整数,例如-123 --> -321 ?

参考答案:

在Python中,反转一个整数可以通过以下步骤实现:

  1. 将整数转换为字符串。
  2. 使用字符串切片来反转字符串。
  3. 将反转后的字符串转换回整数。

但是,需要注意的是,当整数溢出时,Python会抛出OverflowError。因此,在将字符串转换回整数之前,我们需要检查反转后的字符串是否表示一个有效的整数。

以下是一个实现这个功能的Python函数:

def reverse_integer(n):
    # 将整数转换为字符串
    s = str(n)
    
    # 检查第一个字符是否为负号
    negative = False
    if s[0] == '-':
        negative = True
        s = s[1:]  # 移除负号
    
    # 反转字符串
    s = s[::-1]
    
    # 检查反转后的字符串是否表示一个有效的整数
    try:
        result = int(s)
    except ValueError:
        return 0
    
    # 如果原始整数是负数,那么反转后的整数也应该是负数
    if negative:
        result = -result
    
    # 检查反转后的整数是否溢出
    if result > 2**31 - 1 or result < -2**31:
        return 0
    
    return result

这个函数首先检查输入的整数是否为负数。如果是,它会记住这一点,并从字符串中移除负号。然后,它反转字符串,并尝试将反转后的字符串转换回整数。如果转换失败(例如,因为字符串包含非数字字符),那么函数返回0。如果原始整数是负数,那么函数会将反转后的整数取负。最后,函数检查反转后的整数是否溢出。如果溢出,那么函数返回0。否则,函数返回反转后的整数。