Leetcode 整數反轉

2021-10-03 03:37:11 字數 2240 閱讀 4917

解題思路:(python3)

由整數反轉聯絡到整除取餘的方法,從而設定乙個for迴圈遍歷出整數的各位數字。同時將得到的各位數字可以以列表形式儲存起來,運用lambda函式將列表元素合併以後再返回。在這點上,也可也不採用列表的形式,而是在得到各位數字的同時進行乘法運算直接得到反轉後的數字,更為簡潔。要注意,判斷是否溢位不能在進入if判斷時進行,因為反轉後的數字也可能會溢位。

class

solution

:def

reverse

(self, num1:

int)

->

int:

import functools

num=

int(num1)

list=[

]if num>0:

lens=

len(

str(num)

) n=num%

10list

'%s'

% n)

for i in

range(1

,lens)

:list

'%s'

%(num//(10

**i)%10

))num3=

int(functools.

reduce

(lambda x,y:

str(x)

+str

(y),

list))

if num3>2**

31-1:

return

0else

:return num3

else

: num2=-1

*num

lens=

len(

str(num2)

) n=num2%

10list

'%s'

% n)

for i in

range(1

,lens)

:list

'%s'

%(num2//(10

**i)%10

))num3=

int(functools.

reduce

(lambda x,y:

str(x)

+str

(y),

list))

if num3>2**

31:return

0else

:return-1

*num3

要點:

items =[1

,2,3

,4,5

]# 列表

squared =

for i in items:

2)

map函式可以讓我們用一種簡單而漂亮得多的方式來實現:
items =[1

,2,3

,4,5

]squared =

list

(map

(lambda x: x**

2, items)

)

上面使用了匿名函式,也可以自定義函式:

items =[1

,2,3

,4,5

]def

f(x)

:return x**

2squared =

list

(map

(f, items)

)

# 匯入reduce

from functools import

reduce

# 定義函式

deff

(x,y)

:return x*y

# 定義序列,含1~10的元素

items =

range(1

,11)# 使用reduce方法

result =

reduce

(f,items)

print

(result)

map(),reduce()函式具體介紹

lambda函式具體介紹

leetcode反轉整數

題目 反轉整數 給定乙個 32 位有符號整數,將整數中的數字進行反轉。示例 1 輸入 123 輸出 321 示例 2 輸入 123 輸出 321 示例 3 輸入 120 輸出 21 注意 假設我們的環境只能儲存 32 位有符號整數,其數值範圍是 2 31,231 1 根據這個假設,如果反轉後的整數溢...

leetcode 整數反轉

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

LeetCode 整數反轉

給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。注意 假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 231,231 1 請根據這個假設,如果反轉後整數溢位那麼就返回 0。題目並不難,重點在於處理溢位問題。int max 2147483647 int min...