leetcode 7 整數反轉

2021-10-23 02:37:02 字數 1611 閱讀 6750

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

示例 1:

輸入: 123

輸出: 321

示例 2:

輸入: -123

輸出: -321

示例 3:

輸入: 120

輸出: 21

注意:

假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 [−231,  231 − 1]。請根據這個假設,如果反轉後整數溢位那麼就返回 0。
轉換成字串,用左右2個指標向中間掃瞄,互換即可。時間複雜度是o(n)

如果不轉換成字串,可以直接拿整數的性質來做。

轉換成字串版:

class

solution

:def

reverse

(self, x:

int)

->

int:

x_list =

list

(str

(x))

left, right =0,

len(x_list)-1

if x_list[left]

=='-'

: left +=

1while left < right:

x_list[left]

, x_list[right]

= x_list[right]

, x_list[left]

left +=

1 right -=

1if x_list[0]

=='0'

andlen

(x_list)!=1

: x_list = x_list[1:

] ret_num =

int(

''.join(x_list)

)if ret_num >

pow(2,

31)-1

or ret_num <

-pow(2

,31):

ret_num =

0return ret_num

利用整數性質版:

class

solution

:def

reverse

(self, x:

int)

->

int:

ans =

0 sign =

1if x >=

0else-1

x *= sign

while x:

digit = x %

10 ans = ans *

10+ digit

x //=

10 ans *= sign

if ans >2**

31-1or ans <-2

**31

:return

0return ans

LeetCode7反轉整數

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

LeetCode 7 反轉整數

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

leetcode 7反轉整數

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