7 整數反轉

2021-10-03 21:43:47 字數 1819 閱讀 7449

題目描述:給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。

難度:簡單

示例1:

輸入: 123

輸出: 321

示例2:

輸入: -123

輸出: -321

示例3:

輸入: 1534236469

輸出: 0

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

解題思路:由整數反轉--->字串反轉,先把整數轉換成字串,最後再轉換回整數

執行用時 :24 ms

記憶體消耗 :12.7 mb

執行用時 :28 ms

記憶體消耗 :12.7 mb

**:

class solution(object):

def reverse(self, x):

""":type x: int

:rtype: int

"""# 轉換成字串,整數反轉->字串反轉

# 方法一:切片法反轉y[::-1]

if(x >= 0): #處理正整數

y = str(x) #str()把x轉成字串

y = int(y[::-1])

else: #處理負整數

y = str(abs(x)) #把負整數取絕對值之後再反轉,最後新增負號

y = int(y[::-1])

y = -y

if (y < (-2) ** 31) or (y > 2 ** 31 - 1): # 如果超出 [−2^31,2^31−1]範圍,返回0

return 0

return y

class solution(object):

def reverse(self, x):

""":type x: int

:rtype: int

"""# 方法二:reversed()反轉

if (x >= 0): # 處理正整數

y = str(x) # str()把x轉成字串

y = int(''.join(reversed(y)))

else: # 處理負整數

y = str(abs(x)) # 把負整數取絕對值之後再反轉,最後新增負號

y = int(''.join(reversed(y)))

y = -y

if (y < (-2) ** 31) or (y > 2 ** 31 - 1): # 如果超出 [−2^31,2^31−1]範圍,返回0

return 0

return y

執行結果:

7 整數反轉

鏈結 給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。示例 1 輸入 123 輸出 321示例2 輸入 123 輸出 321示例 3 輸入 120 輸出 21注意 假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 231,231 1 請根據這個假設,如果反轉後...

7 整數反轉

解法一 對輸入數字進行整除和取餘運算,並把輸出值乘以10後與每次取餘的結果相加,直到原資料變為0 每次迴圈,原數對10取餘 結果乘以10,同時原數對10整除。c int reverse int x return rev python def reverse self,x r 0 返回值 flag 1...

7 整數反轉

有些讀者反映我寫的內容太簡單,有時候看不懂思路,我以後會記得寫好思路。一 數值法 1.取出符號位 2.10一次取出x的每一位,再 10變為ans 3.判斷是否超出 output 0if x 0 flag 1else flag 1 x abs x while x 0 res x 10 x int x ...