1. 程式人生 > >leetcode的python實現 刷題筆記7: 反轉整數

leetcode的python實現 刷題筆記7: 反轉整數

給定一個 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,則忽略
'''