題目:反轉一個整數。例如,輸入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
這個算法通過取余和整除操作,依次將原數字的每一位反轉,同時判斷是否溢出。最終返回反轉后的整數。