反轉整數 python程式設計
阿新 • • 發佈:2018-12-18
給定一個 32 位有符號整數,將整數中的數字進行反轉。
示例 1:
輸入: 123
輸出: 321
示例 2:
輸入: -123
輸出: -321
示例 3:
輸入: 120
輸出: 21
注意:
假設我們的環境只能儲存 32 位有符號整數,其數值範圍是 [−2**31, 2**31 − 1]。根據這個假設,如果反轉後的整數溢位,則返回 0。
程式碼:
class Solution(object): def reverse(self, x): """ :type x: int :rtype: int """ #32位有符號整數的範圍 MAX_INT = 2**31-1 MIN_INT = - 2**31 #檢查輸入是否超過32位有符號整數的範圍 if x > MAX_INT or x < MIN_INT: return 0 # 如果x能夠被10整除,則需要消除末尾的0,否則翻轉到前面沒有意義 if x%10 == 0 and x != 0: while x%10==0: x = x//10 #x的符號sign sign_x = 1 if x < 0: sign_x = -1 # 不論x是正是負,統一轉化為正數來處理,處理後再轉化過來輸出 x = sign_x * x reverse_integer = 0 while x != 0: reverse_integer = x%10 + reverse_integer*10 x = x//10 reverse_integer = reverse_integer*sign_x # 檢查輸出是否超過32位有符號整數的範圍 if reverse_integer > MAX_INT or reverse_integer < MIN_INT: return 0 return reverse_integer