Leetcode 7 整數反轉(easy)

2021-09-19 16:46:21 字數 1767 閱讀 6606

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

示例 1:

輸入: 123

輸出: 321

示例 2:

輸入: -123

輸出: -321

示例 3:

輸入: 120

輸出: 21

注意:假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 [−231, 231 − 1]。請根據這個假設,如果反轉後整數溢位那麼就返回 0。

解法一:切片的方法(效率高速度快)

class

solution

: def reverse

(self, x)

: temp =

1if x <0:

temp =-1

x =-x x =

str(x)

result = x[::

-1] result =

int(result)

if result >2**

31-1 or result <-2

**31

: result =

0return result*temp

class

solution

: def reverse

(self, x):r

=0 #返回值

flag =

1 #標記輸入值的正負

if x<0:

x =abs(x)

flag =

-1 #輸入是負數

while x !=0:

r=r*

10+x%

10 x = x//10if-

2147483647

<

r<

2147483648

:#判斷是否越界

return

r*flag

else

:return

0

解法三:leetcode上看到的最快速度

class

solution

(object)

: def reverse

(self, x)

:"""

:type x: int

:rtype: int

"""if-10

< x <10:

return x

str_x =

str(x)

if'-' not in str_x:

result =

int(str_x[::

-1])

else

: str_x =

int(str_x[1:

][::

-1])

result =

-str_x

# 需要考慮溢位情況

return result if

-2147483648

< result <

2147483647

else

0if __name__ ==

'__main__'

: s =

solution()

print s.

reverse(-

123)

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 根據這個假設,如果反轉後的整數溢位,則返...