反转一个整数,例如-123 --> -321 ?
参考答案:
在Python中,反转一个整数可以通过以下步骤实现:
- 将整数转换为字符串。
- 使用字符串切片来反转字符串。
- 将反转后的字符串转换回整数。
但是,需要注意的是,当整数溢出时,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。否则,函数返回反转后的整数。