Leetcode 7 反轉數字

2021-09-24 04:31:00 字數 1703 閱讀 1986

給出乙個 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。很簡單,就是不...