整數反轉 題目描述 給出一個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。 示例 1: 輸入: 123 輸出: 321 示例 2: 輸入: -123 輸出: -321 示例 3: 輸入: 120 輸出: 21 註意: 假設我們的環境只能存儲得下 32 位的有符號整數,則其數值範圍為 ...
整數反轉
題目描述
給出一個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。
示例 1:
輸入: 123
輸出: 321
示例 2:
輸入: -123
輸出: -321
示例 3:
輸入: 120
輸出: 21
註意:
假設我們的環境只能存儲得下 32 位的有符號整數,則其數值範圍為 [−231, 231 − 1]。請根據這個假設,如果反轉後整數溢出那麼就返回 0。
簡單解法
本題考點:
1. int和str類型互轉,註意這裡是將int裝換成string之後,需要根據字元串的特性來反轉
2. str倒序輸出
具體思路:
先將輸入的整數轉換為str類型,翻轉後再轉換為int類型,但是其中涉及到有負數的情況,而負數是不能夠將符號位進行翻轉的,所以將輸入的數分為2種情況。並且如果反轉後整數溢出那麼就返回0,所以將輸出的數也分為2種情況。
輸入的數:
1. 輸入的整數>=0
2. 輸入的整數<0
輸出的數:
1. 輸出的數 < −231 or 輸出的數 > 231 – 1 return 0
2. −231 < 輸出的數 < 231 – 1 return 輸出的數
def reverse(x): """ :type x: int :rtype: int """ if x>= 0: result = int(str(x)[::-1])#先將x轉換為str類型然後翻轉最後再轉換回int else: result = -int(str(x)[1:][::-1])#因為此時的x是負數第0位是符號位,所以反轉的時候要從第一位開始反轉 if result >2**31-1 or result<-2**31:#判斷輸出的數範圍 return 0 return result