給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。
示例 1:
輸入: 123
輸出: 321
示例 2:
輸入: -123
輸出: -321
示例 3:
輸入: 120
輸出: 21
注意:假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 [−231, 231 − 1]。請根據這個假設,如果反轉後整數溢位那麼就返回 0。
1.先記錄正負號。
2.然後用數學方法不斷求x的每一位。
3.得到反轉結果,進行溢位判斷。
class solution:
def reverse(self, x: int) -> int:
if x != 0:
symbol = int(abs(x)/x)
x = abs(x)
a = 0
while x >0:
a = a * 10 + x % 10
x = x // 10
if -2**31 <= a*symbol and a*symbol <= 2**31-1:
return a*symbol
else:
return 0
else:
return 0
s = solution()
print(s.reverse())
1.先判斷x是不是負數,是負數的話,取絕對值或者切片變為正數,然後直接切片反轉。
2.判斷反轉後的數字是否溢位。
3.注意int型與str型的轉換
class solution:
def reverse(self, x: int) -> int:
str_int = str(x)
if x < 0:
str_int = str_int[1:]
str_int = str_int[::-1]
if x < 0:
str_int = "-"+str_int
ret = int(str_int)
if ret < -1*2**31 or ret > 2**31 -1:
return 0
else:
return ret
s = solution()
print(s.reverse())
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 根據這個假設,如果反轉後的整數溢位,則返...