7 整數反轉

2021-10-02 13:07:58 字數 1266 閱讀 3768

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

示例 1:

輸入: 123

輸出: 321

思路1:24 ms 13.1 mb。先轉換成字串,再使用int()函式把字串轉換成整數。

class

solution

:def

reverse

(self, x:

int)

->

int:

flag =

1# 區別正負數

if x<0:

flag=-1

x =-x ans =

""if x==0:

return x # 特殊情況

while x!=0:

a1 = x%

10 ans +=

str(a1)

x //=

10 ans = ans.lstrip(

"0")

# 去掉反轉後出現的0

re = flag*

int(ans)

if re<-2

**31

or re>2**

31-1:

# 考慮溢位

return

0return re

思路2:這裡主要考慮不使用int()函式的情況,也就不需要把int和string進行互相轉換。直接在生成各位數的時候進行累加,這樣就可以直接輸出。

class

solution

:def

reverse

(self, x:

int)

->

int:

flag =

1# 區別正負數

if x <0:

flag =-1

x =-x y =

0while

(x !=0)

: y = y *

10+ x %

10 x = x //

10 y=y*flag

if(y >2**

31-1or y <-2

**31):

# 考慮溢位

return

0return 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 ...