1. 程式人生 > >LeetCode刷題——第七題(整數反轉)

LeetCode刷題——第七題(整數反轉)

7.整數反轉

題目描述

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

輸入: 123
輸出: 321

示例 2:

輸入: -123
輸出: -321

示例 3:

輸入: 120
輸出: 21

注意:
假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 [ 2

31 −2^{31} , 2 31 1 2^{31} − 1
]。請根據這個假設,如果反轉後整數溢位那麼就返回 0。

思路

  • 利用切片解決問題
    將數字轉換成字串,利用切片交換順序,最後輸出結果
  1. 輸入的數為負數時:將其變為正數處理,變為字串,交換順序後,其相反數。
  2. 輸入為正數或者0時,那就很好處理了。
  3. 注意判定最後 y y 的範圍。

程式碼實現


class Solution
(): def reverse(self, x): """ :type x: int :rtype: int """ b = pow(2,31) if x < 0: y = -int(str(-x)[::-1]) # 字串切片的思想 else: y = int(str(x)[::-1]) if y < -b or y > b - 1: return 0 else: return y