1. 程式人生 > >20190501-整數翻轉

20190501-整數翻轉

簡單解法 mes text object str gin lang 反轉 nbsp

整數反轉

題目描述

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

示例 1:

輸入: 123

輸出: 321

示例 2:

輸入: -123

輸出: -321

示例 3:

輸入: 120

輸出: 21

註意:

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

簡單解法

本題考點:

1. intstr類型互轉,註意這裏是將int裝換成string之後,需要根據字符串的特性來反轉

2. str倒序輸出

具體思路:

先將輸入的整數轉換為str類型,翻轉後再轉換為int類型,但是其中涉及到有負數的情況,而負數是不能夠將符號位進行翻轉的,所以將輸入的數分為2種情況。並且如果反轉後整數溢出那麽就返回0,所以將輸出的數也分為2種情況。

輸入的數:

1. 輸入的整數>=0

2. 輸入的整數<0

輸出的數:

1. 輸出的數 < 231 or 輸出的數 > 231 1 return 0

2. 231 < 輸出的數 < 231 1 return 輸出的數

class Solution(object):
    
def reverse(self, x): """ :type x: int :rtype: int """ if x>= 0: result = int(str(x)[::-1])#先將x轉換為str類型然後翻轉最後再轉換回int else: result = -int(str(x)[1:][::-1])#因為此時的x是負數第0位是符號位,所以反轉的時候要從第一位開始反轉 if result >2**31-1 or
result<-2**31:#判斷輸出的數範圍 return 0 return result

20190501-整數翻轉