1. 程式人生 > 實用技巧 >leetcode 7 整數反轉 python

leetcode 7 整數反轉 python

傳送門

題目要求

給出一個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。

示例 1:
輸入: 123
輸出: 321

示例 2:
輸入: -123
輸出: -321

示例 3:
輸入: 120
輸出: 21
注意:

假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 [−231, 231 − 1]。請根據這個假設,如果反轉後整數溢位那麼就返回 0。

思路一

利用字串反轉

思路二

進行取餘操作,按位乘10相加

→_→ talk is cheap, show me the code

class Solution:
    def reverse(self, x):
        """
        :type x: int
        :rtype: int
        """
        if x // 10==0:
            return x
        symbol = 1
        if x < 0:
            symbol = -1
            x = symbol * x
        n = 0
        # 將x倒位相加
        while x != 0:
            n = n*10 + x%10
            x = x//10
        # 記得加上符號
        res = n*symbol
        # 題目給的邊界條件
        if -2**31 <= res and res <= 2**31-1:
            return res
        return 0