整數反轉 leetcode7

2021-09-20 04:01:41 字數 2366 閱讀 4535

給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。

示例 1:

輸入: 123

輸出: 321

示例 2:

輸入: -123

輸出: -321

示例 3:

輸入: 120

輸出: 21

注意:假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 [−231, 231 − 1]。請根據這個假設,如果反轉後整數溢位那麼就返回 0。

c++版本

class solution {

public:

int reverse(int x) {

int result=0;

if(x>=int_min &&x<=int_max){

while(x!=0){

int a = x%10;

x/=10;

if(result>int_max/10 || (result==int_max/10 && a>7)) return 0;

if(resultc++負數除法和取餘運算:

關於除法,不管是整數還是負數都是向0取整:

10/4=2 10/(-4)=-2

負數取餘,通過取模來確定

|小| % |大| = |小| 符號同前 |大| % |小| = |餘| 符號同前

3%4 = 3 ; -3%4 = -3 ; -3%-4 = -3 ; 3%-4 = 3; 5%3 = 2 ; 5%-3 = 2

;-5%-3 = -2 ; -5%3 = -2;

記住這一點即可解決c/c++的大部分情況。取餘運算時首先全取絕對值進行計算,再進行符號的判斷

python除法和取模運算:

正數除法:

6/4=1.5(返回是浮點數)

6//4=1(返回是整數)

6返回不是整數,其和分子分母資料型別有關係)

負數除法:

python3除法採取的是向下取整,即向負無窮方向取最接近精確值的整數。故當整除運算有負數時,結果稍有不同:

4//-3=-2 -10//3=-4

我們通常計算中,採用的是向零取整的方法計算,4//-3 = -1,-10//3 = -3。如果希望在python3中對負數採用向零取整的方法計算,可以如下處理:

int(4/-3)=-1 int(-10/3)=-3

python3 中採用%表示取模運算,結果返回除法的餘數

21%10=3 3%4=3

但是由於python採用的是向下取整的方式,所以對負數的取餘結果不一樣:

-21%10=9 -5%4=3

結合前面負數的整除計算,可以理解取模的結果。

-21//10 = -3, -21-(-3)*10 = 9

python版本

class solution:

def reverse(self, x: int) -> int:

if(x==0):

return 0

result=0

if(x>0):

while(x!=0):

result=10*result+x%10

x//=10

if(result>2**31-1):

return 0

return result

else:

x=-x

while(x!=0):

result=10*result+x%10

x//=10

if(result>2**31):

return 0

return -1*result

法二,轉換為string呼叫相關函式

if x==0:

return 0

str_x = str(x)

x = ''

if str_x[0] == '-':

x += '-'

x += str_x[len(str_x)-1::-1].lstrip("0").rstrip("-")

x = int(x)

if -2**31return x

return 0

lstrip([chars])和rstrip([chars])分別表示去掉字串左右兩邊指定的字元。

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 根據這個假設,如果反轉後的整數溢位,則返...