题目:反转一个整数。例如,输入123,输出321;输入-456,输出-654。注意:反转后的整数在32位带符号整数范围内。
编写一个函数 reverseInteger(x: int) -> int 来实现这个功能。
答案:
def reverseInteger(x: int) -> int:INT_MAX = 2**31 - 1INT_MIN = -2**31# 判断正负号sign = 1 if x > 0 else -1x *= sign# 反转数字reversed_x = 0while x != 0:# 检查溢出if reversed_x > (INT_MAX - x % 10) // 10:return 0reversed_x = reversed_x * 10 + x % 10x //= 10return sign * reversed_x# 测试
num1 = 123
num2 = -456
print(reverseInteger(num1)) # 输出:321
print(reverseInteger(num2)) # 输出:-654
这个算法通过取余和整除操作,依次将原数字的每一位反转,同时判断是否溢出。最终返回反转后的整数。