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