leetcode之整數反轉(Python)

2021-10-10 01:14:44 字數 1530 閱讀 8530

/solution/pythondan-chu-he-tui-ru-shu-zi-yi-chu-qian-jin-xin/

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

示例 1:

輸入: 123

輸出: 321

示例 2:

輸入: -123

輸出: -321

示例 3:

輸入: 120

輸出: 21

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

31,231

−1

][−2^, 2^ − 1]

[−231,

231−

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

主要使用python中的str()和int(),注意邊界和符號即可。

def

reverse_force

(self, x:

int)

->

int:if-

10< x <10:

return x

str_x =

str(x)

if str_x[0]

!="-"

: str_x = str_x[::

-1] x =

int(str_x)

else

: str_x = str_x[:0

:-1]

x =int(str_x)

x =-x return x if

-2147483648

< x <

2147483647

else

0

每次取出整數x的最後一位,將其加入結果中。

def

reverse_better

(self, x:

int)

->

int:

y, res =

abs(x),0

# 則其數值範圍為 [−2^31, 2^31 − 1]

boundry =(1

<<31)

-1if x >

0else

1<<

31while y !=0:

res = res *

10+ y %

10if res > boundry:

return

0 y //=

10return res if x >

0else

-res

時間複雜度:o(l

og(x

))

o(log(x))

o(log(

x)),x

xx中大約有log

10(x)

log10(x)

log10(

x)位數字。

空間複雜度:o(1

)o(1)

o(1)

leetcode之整數反轉

這幾天開始嘗試做leetcode上面的題庫,先從簡單的做起。爭取每天一題。不多說直接進入正題。題目要求上面已經說的很清楚了,下面直接說說我是怎麼做的 class solution def reverse self,x int int 題目預設給出,x就是輸入的整數先取 y abs x 絕對值,不管正...

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 請根據這個假設,如果反轉後整數...