給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。
示例 1:
輸入:123輸出:321
示例 2:
輸入:-123輸出:-321
示例 3:
輸入:120輸出:21
注意:
假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 [−231, 231 − 1]。請根據這個假設,如果反轉後整數溢位那麼就返回 0。
py1
py2 js
go 思路很簡單,然而我第一次寫的時候遇到了乙個很簡單的問題,但是遲遲沒想起來錯誤出現在**:
class solution:
def reverse(self, x: int) -> int:
symbol = x
y = 0
x = abs(x)
while x!=0:
y = y*10+x%10
x//=10
if y>2147483647:
return 0
return y if symbol>0 else -y
這段**在倒數第幾個例項,輸入「1534236469」時出錯,後來發現,原來是因為反轉之後的數溢位,沒審題導致的嚴重失誤啊。
class solution:
def reverse(self, x: int) -> int:
symbol = x
y = 0
x = abs(x)
while x!=0:
y = y*10+x%10
x//=10
if y>2147483647:
return 0
return y if symbol>0 else -y
我們也可以使用字串和數字相互轉換的特性:
class solution:
def reverse(self, x: int) -> int:
abs_x = abs(x)
str_x = str(abs_x)[::-1]
num = int(str_x)
if num > 2147483647:
return 0
elif x < 0:
return -num
else:
return num
做法同py1
var reverse = function(x)
if ( y<= (1<<31) || y >= -(1<<31))
return y
};
做法同py1
func reverse(x int) int
if !( -(1<<31) <= y && y <= (1<<31)-1)
return y
}
leetcode 7 整數反轉(數學)
給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。示例 1 輸入 123 輸出 321 示例 2 輸入 123 輸出 321 示例 3 輸入 120 輸出 21 注意 假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 231,231 1 請根據這個假設,如果反轉...
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。很簡單,就是不...