0x00:問題描述
將一int型數字實現高低位反轉,若遇到反轉後的數值超出int型變數表示範圍則返回0值。
0x01:解題思路
由於數字反轉後數值大小可能超限,故採用字串的形式進行反轉處理會比較方便。
此處用到的兩c++標準庫函式:stringto_string(int)、intstoi(string)。前者實現整型變數->string字串,後者實現string字串->整型變數。
注意:dev c++存在無法使用to_string、stoi等標準庫函式的情況,此時需按如下步驟修改編譯器選項:【工具】-【編譯器選項】-【編譯時加入以下命令】-「-std=c++11" 。
0x02:**
1class
solution
6string s1=to_string(x),maxs="
-2147483648
";
7int i=1,j=s1.size()-1;8
for(;i) swap(s1[i],s1[j]);
9if(s1.size()==11&&s1>maxs) return
0;
10return flag*stoi(s1);
11}
12 };
0x03:幾點說明
#.將x統一變為負數,方便後續一致化處理。不統一為正數的原因是,對-2147483648符號取反得出的結果已經超出了int_max。
#.對string字串的反轉方法採用了swap函式進行逐位反轉。
#.line9中條件判斷表示式利用了string所支援的比較運算子'>',由此篩選出反轉後數值超限的特殊情況。
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 根據這個假設,如果反轉後的整數溢位,則返...