整數反轉 簡單

2021-10-25 05:21:15 字數 3096 閱讀 6268

題目

解答

class

solution

(object):

defrev2

(self,x,matrix)

:for i in

range(0

,10):

matrix[i]

= x //(10

**(9- i)

) x = x - matrix[i]*(

10**(9

- i)

)print

(i, matrix[i]

, x)

i =0 k =

0while i <10:

if matrix[i]==0

: i = i +

1else

: k = i

print

('k:'

, k)

break

x_new =

0print

(matrix)

for i in

range(0

,10- k)

:print

(matrix[k + i],10

** i)

x_new = x_new + matrix[k + i]*(

10** i)

print

(x_new)

return x_new

defreverse

(self, x)

:"""

:type x: int

:rtype: int

"""matrix =[0

]*10if x >=0:

if x <=2**

31-1:

x_new =self.rev2(x,matrix)

else

: x_new=

0else

: x=

-x if x <=2**

31:x_new =

-self.rev2(x, matrix)

else

: x_new =

0if x_new >=0:

if x_new >2**

31-1:

x_new =

0else:if

-x_new >2**

31:x_new =

0return x_new

注意:理清思路,10位還是9位數。先反轉再判斷是否溢位。

(**太過繁瑣,很多重複)

將**進行整理:

class

solution

(object):

defrev2

(self,x,matrix)

:for i in

range(0

,10):

matrix[i]

= x //(10

**(9- i)

) x = x - matrix[i]*(

10**(9

- i)

) i =

0 k =

0while i <10:

if matrix[i]==0

: i = i +

1else

: k = i

break

x_new =

0for i in

range(0

,10- k)

: x_new = x_new + matrix[k + i]*(

10** i)

return x_new

defreverse

(self, x)

:"""

:type x: int

:rtype: int

"""matrix =[0

]*10if x >=0:

if x <=2**

31-1:

x_new =self.rev2(x,matrix)

if x_new >2**

31-1:

x_new =

0else

: x_new=

0else

:if x <=2**

31:x_new =

-self.rev2(

-x, matrix)

if-x_new >2**

31:x_new =

0else

: x_new =

0return x_new

官方回答

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

將整數轉化為字串,然後對字串進行反轉

7 整數反轉 簡單

鏈結給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。本題和 字串轉化成整數 很類似 主要是在判斷溢位的時候的技巧 注意 在去掉符號的時候,如果是最小的負數去掉符號,直接就溢位了,要注意這一點 class solution 因為範圍是2 31 2 31 1 想象成 128 12...

每日演算法題 整數反轉 簡單

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

力扣 7 整數反轉 簡單

描述 給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。示例 示例 1 輸入 123輸出 321示例 2 輸入 123輸出 321示例 3 輸入 120輸出 21較優的解決方案 class solution return ans 思路解析 講真,咱沒啥特點,就是笨.看到這個題也...