給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。
示例 1:
輸入: 123
輸出: 321
示例 2:
輸入: -123
輸出: -321
示例 3:
輸入: 120
輸出: 21
注意:
假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 [−231, 231 − 1]。請根據這個假設,如果反轉後整數溢位那麼就返回 0。
轉換成字串,用左右2個指標向中間掃瞄,互換即可。時間複雜度是o(n)
如果不轉換成字串,可以直接拿整數的性質來做。
轉換成字串版:
class
solution
:def
reverse
(self, x:
int)
->
int:
x_list =
list
(str
(x))
left, right =0,
len(x_list)-1
if x_list[left]
=='-'
: left +=
1while left < right:
x_list[left]
, x_list[right]
= x_list[right]
, x_list[left]
left +=
1 right -=
1if x_list[0]
=='0'
andlen
(x_list)!=1
: x_list = x_list[1:
] ret_num =
int(
''.join(x_list)
)if ret_num >
pow(2,
31)-1
or ret_num <
-pow(2
,31):
ret_num =
0return ret_num
利用整數性質版:
class
solution
:def
reverse
(self, x:
int)
->
int:
ans =
0 sign =
1if x >=
0else-1
x *= sign
while x:
digit = x %
10 ans = ans *
10+ digit
x //=
10 ans *= sign
if ans >2**
31-1or ans <-2
**31
:return
0return ans
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 根據這個假設,如果反轉後的整數溢位,則返...