1. 程式人生 > >[leetcode]python3 演算法攻略-反轉整數

[leetcode]python3 演算法攻略-反轉整數

給定一個 32 位有符號整數,將整數中的數字進行反轉。

方案一:匿名函式s用於確定x的正負性。

class Solution:
    def reverse(self, x):
        """
        :type x: int
        :rtype: int
        """
        s = lambda x: x and [1, -1][x < 0]
        r = int(str(s(x) * x)[: : -1])
        return s(x) * r * (r < 2**31 - 1)

方案二:按x的正負, 分別討論

class Solution:
    def reverse(self, x):
        """
        :type x: int
        :rtype: int
        """
        result = int(str(abs(x))[: : -1])
        if x > 0 and result < 2**31:
                return result
        if x < 0:
            result = -result
            if result > -2**31:
                return result
        return 0

相關推薦

[leetcode]python3 演算法-反轉整數

給定一個 32 位有符號整數,將整數中的數字進行反轉。方案一:匿名函式s用於確定x的正負性。class Solution: def reverse(self, x): """ :type x: int :rtype: i

[leetcode]python3 演算法-二叉搜尋樹中第K小的元素

給定一個二叉搜尋樹,編寫一個函式 kthSmallest 來查詢其中第 k 個最小的元素。 說明: 你可以假設 k 總是有效的,1 ≤ k ≤ 二叉搜尋樹元素個數。 方案一:中序排序後,返回第K-1個值 class Solution(object): def k

[leetcode]python3 演算法-驗證二叉搜尋樹

給定一個二叉樹,判斷其是否是一個有效的二叉搜尋樹。一個二叉搜尋樹具有如下特徵:節點的左子樹只包含小於當前節點的數。節點的右子樹只包含大於當前節點的數。所有左子樹和右子樹自身必須也是二叉搜尋樹。方案一:構建一個輔助函式,把當前節點的值,傳遞給子節點,在子節點中進行比較class

[leetcode]python3 演算法-爬樓梯

假設你正在爬樓梯。需要 n 步你才能到達樓頂。 每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢? 注意:給定 n 是一個正整數。 方案一:每一步都是前兩步和前一步的和 class Solution(object): def climbSt

[leetcode]python3 演算法-打家劫舍

你是一個專業的小偷,計劃偷竊沿街的房屋。每間房內都藏有一定的現金,影響你偷竊的唯一制約因素就是相鄰的房屋裝有相互連通的防盜系統,如果兩間相鄰的房屋在同一晚上被小偷闖入,系統會自動報警。 給定一個代表每個房屋存放金額的非負整數陣列,計算你在不觸動警報裝置的情況下,能夠偷竊到的

[leetcode]python3 演算法-合併兩個有序陣列

給定兩個有序整數陣列 nums1 和 nums2,將 nums2 合併到 nums1 中,使得 num1 成為一個有序陣列。說明:初始化 nums1 和 nums2 的元素數量分別為 m 和 n。你可以假設 nums1 有足夠的空間(空間大小大於或等於 m + n)來儲存 n

[leetcode]python3 演算法-只出現一次的數字

給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。方案一:去重求和,乘2減原def singleNumber(nums): """ :type nums: List[int] :rtype: int

[leetcode]python3 演算法-有效的字母異位詞

給定兩個字串 s 和 t ,編寫一個函式來判斷 t 是否是 s 的一個字母異位詞。方案一:s.count()比較各元素的個數class Solution: def isAnagram(self, s, t): """ :type s:

[leetcode]python3 演算法-有效的括號

給定一個只包括 '(',')','{','}','[',']' 的字串,判斷字串是否有效。 有效字串需滿足: 左括號必須用相同型別的右括號閉合。 左括號必須以正確的順序閉合。 注意空字串可被認為是有效字串。 class Solution(object):

[leetcode]python3 演算法-旋轉影象

給定一個 n × n 的二維矩陣表示一個影象。將影象順時針旋轉 90 度。方案一:先按X軸對稱旋轉, 再用zip()解壓,最後用list重組。class Solution: def rotate(self, matrix): """ :

[leetcode]python3 演算法-兩個陣列的交集 II

給定兩個陣列,寫一個方法來計算它們的交集。方案一:利用collections.Counter的&運算,一步到位,找到 最小次數 的相同元素。def intersect(nums1, nums2): """ :type nums1: List[int]

[leetcode]python3 演算法-加一

給定一個非負整數組成的非空陣列,在該數的基礎上加一,返回一個新的陣列。最高位數字存放在陣列的首位, 陣列中每個元素只儲存一個數字。你可以假設除了整數 0 之外,這個整數不會以零開頭。方案一:利用數學公式求原陣列的int形式def plusOne(digits): ""

[leetcode]python3 演算法-兩數之和

給定一個整數陣列和一個目標值,找出陣列中和為目標值的兩個數。你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。方案一:利用字典,儲存檢查過的元素及其索引。def twoSum(nums, target): """ :type nums: List[

leetcode 簡單】第二題 反轉整數

根據 code 註意 nbsp 輸出 bsp turn res reverse 給定一個 32 位有符號整數,將整數中的數字進行反轉。 示例 1: 輸入: 123 輸出: 321 示例 2: 輸入: -123 輸出: -321 示例 3: 輸入: 120 輸出: 21

Leetcode解題 7. Reverse Integer 反轉整數

ret light leetcode on() def rev python 整數 pre 沒看清要求,提交錯誤一次。 要求是 "如果反轉後的整數溢出,則返回 0"。 class Solution(object): def reverse(self, x)

LeetCode之Reverse Integer(反轉整數 簡單 模擬)

問題描述: 給定32位有符號整數,整數的反向數字。 例1: 輸入: 123 輸出: 321 例2: 輸入: -123 輸出: -321 例3: 輸入: 120 輸出: 21 注意: 假設我們正在處理一個只能在32位有符號整數範圍內儲存整數的環境:[ - 2

LeetCode題目詳解-7反轉整數

7.反轉整數 題目: 給定一個 32 位有符號整數,將整數中的數字進行反轉。 示例 1: 輸入: 123 輸出: 321  示例 2: 輸入: -123 輸出: -321 示例 3: 輸入: 120 輸出: 21 注意: 假設我們的環境只能儲存 32

LeetCode之Reverse Integer(反轉整數 簡單 模擬)

問題描述: 給定32位有符號整數,整數的反向數字。 例1: 輸入: 123 輸出: 321 例2: 輸入: -123 輸出: -321 例3: 輸入: 120 輸出: 21 注意: 假設我們正在處理一個只能在32位有符號整數範圍內儲存整數的環境:[

LeetCode 7. Reverse Integer(反轉整數

Have you thought about this? Here are some good questions to ask before coding. Bonus points for you if you have already thought through this! If the inte

LeetCode第七題之反轉整數

給定一個 32 位有符號整數,將整數中的數字進行反轉。示例 1:輸入: 123 輸出: 321  示例 2:輸入: -123 輸出: -321 示例 3:輸入: 120 輸出: 21 注意:假設我們的環境只能儲存 32 位有符號整數,其數值範圍是 [−231,  231 −