/solution/pythondan-chu-he-tui-ru-shu-zi-yi-chu-qian-jin-xin/
給出乙個32位的有符號整數,你需要將這個整數中每位上的數字進行反轉。
示例 1:
輸入: 123
輸出: 321
示例 2:
輸入: -123
輸出: -321
示例 3:
輸入: 120
輸出: 21
注意:假設我們的環境只能儲存得下32位的有符號整數,則其數值範圍為[−2
31,231
−1
][−2^, 2^ − 1]
[−231,
231−
1]。請根據這個假設,如果反轉後整數溢位那麼就返回0。
主要使用python中的str()和int(),注意邊界和符號即可。
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
每次取出整數x的最後一位,將其加入結果中。
def
reverse_better
(self, x:
int)
->
int:
y, res =
abs(x),0
# 則其數值範圍為 [−2^31, 2^31 − 1]
boundry =(1
<<31)
-1if x >
0else
1<<
31while y !=0:
res = res *
10+ y %
10if res > boundry:
return
0 y //=
10return res if x >
0else
-res
時間複雜度:o(l
og(x
))
o(log(x))
o(log(
x)),x
xx中大約有log
10(x)
log10(x)
log10(
x)位數字。
空間複雜度:o(1
)o(1)
o(1)
leetcode之整數反轉
這幾天開始嘗試做leetcode上面的題庫,先從簡單的做起。爭取每天一題。不多說直接進入正題。題目要求上面已經說的很清楚了,下面直接說說我是怎麼做的 class solution def reverse self,x int int 題目預設給出,x就是輸入的整數先取 y abs x 絕對值,不管正...
leetcode反轉整數
題目 反轉整數 給定乙個 32 位有符號整數,將整數中的數字進行反轉。示例 1 輸入 123 輸出 321 示例 2 輸入 123 輸出 321 示例 3 輸入 120 輸出 21 注意 假設我們的環境只能儲存 32 位有符號整數,其數值範圍是 2 31,231 1 根據這個假設,如果反轉後的整數溢...
leetcode 整數反轉
給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。示例 1 輸入 123 輸出 321示例 2 輸入 123 輸出 321示例 3 輸入 120 輸出 21注意 假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 231,231 1 請根據這個假設,如果反轉後整數...