leetcode的python實現 刷題筆記7: 反轉整數
阿新 • • 發佈:2018-12-11
給定一個 32 位有符號整數,將整數中的數字進行反轉。
示例 1:
輸入: 123 輸出: 321
示例 2:
輸入: -123 輸出: -321
示例 3:
輸入: 120 輸出: 21
注意:
假設我們的環境只能儲存 32 位有符號整數,其數值範圍是 [−231, 231 − 1]。根據這個假設,如果反轉後的整數溢位,則返回 0。
class Solution(object): def reverse(self, x): """ :type x: int :rtype: int """ # 判斷是否為個位數,是個位數則不用反轉,直接返回 if -10 < x < 10: return x # 把整數x轉為字串 string = str(x) # 判斷第一個是否為負號 if string[0] != "-": # 不是負號則直接反轉 string = string[::-1] # str轉為int x = int(string) else: # 是負號,則反轉負號之後的字串 string = string[1:][::-1] # str轉int x = int(string) # 加上負號 x = -x # 判斷是否溢位 # 如果-2147483648 < x < 2147483647則返回x,否則返回0 return x if -2147483648 < x < 2147483647 else 0 # 總結反思 ''' 1.訪問子字串,可以使用方括號來擷取字串,例如string[0]取的是字串第一個元素 2.[ : ] 擷取字串中的一部分,string[::-1]表示從尾到頭翻轉,步長為-1 3.int型別中如果首元素是0,則忽略 '''