題目描述:給出乙個 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 根據這個假設,如果反轉後的整數溢位,則返...