LEETCODE 7整數反轉

2021-10-03 04:16:30 字數 1474 閱讀 7588

給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 [−231, 231 − 1]。請根據這個假設,如果反轉後整數溢位那麼就返回 0。

常規求餘數倒置法

int

reverse

(int x)

if(rev_x > int_max)

return0;

return

(x >0)

? rev_x :

-rev_x;

}

2.正負討論的做法,直接對x操作,不引入中介量

int

reverse

(int x)

return

(res > int_max || res < int_min)?0

: res;

}

3.將每位數壓入陣列,比較笨重

int

reverse

(int x)

//每位數字依次放進陣列,放進的順序正好是反轉的順序

for(

int i=

0;i<

32;i++

)//判斷溢位+輸出

int j=

0,size=nums.

size()

;for

(int i=

0;isize()

;i++

,size--

)return j;

}

利用stringstream,輸出流法

int

reverse

(int x)

intreverse

(int x)

if(x <0)

stringstream ss;

ss << x;

string tmpstr;

ss >> tmpstr;

int tmpstrsize =

int(tmpstr.

size()

);string resultstr;

for(

int index = tmpstrsize -

1; index >=

0; index--

) ss.

clear()

;//使用前記得clear

ss << resultstr;

ss >> result;

if(result > int_max)

return

int(result)

;}

5.轉換為string型後,手動首尾倒置

int

reverse

(int x)

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