題目描述:
輸入乙個正整數陣列,把陣列中所有數字拼接起來排成乙個數,列印能拼接出的所有數字中最小的乙個。
示例:
輸入:
輸出:321323
分析:
首先把陣列中的每個數字轉換成字串的形式,然後對所有字串進行排序
排序的規則是:a+b < b+a,則a應該在b的前面,
最後再將所有的字串拼接起來即為最終的結果
為了防止資料溢位,使用字串的形式來儲存最終結果。
並且字串起始的0都要去掉,如01234,應該只返回1234即可
**:
static
bool cmp(string& s1,string& s2)
sort(strs.begin(),strs.end(),cmp); //step 2:按照規則排序
string res;
bool flag=true;
for(int i=0;i//step 3:將所有字串按序拼接
if(strs[i]=='0'&&flag) continue; //去掉起始的0
res+=strs[i];
flag=false;
}
return res;
}
劍指offer系列(32) 把陣列排成最小的數
題目描述 輸入乙個正整數陣列,把陣列裡所有數字拼接起來排成乙個數,列印能拼接出的所有數字中最小的乙個。例如輸入陣列,則列印出這三個數字能排成的最小數字為321323。思路分析 對陣列中每兩個元素進行組合,比較,確認出最小的排列。比如,3與32組合,332 323,所以交換3和32的位置,3與321組...
牛客 劍指offer系列題解 把陣列排成最小的數
記錄刷題的過程。牛客和力扣中都有相關題目,這裡以牛客的題目描述為主。該系列預設採用python語言。1 問題描述 輸入乙個正整數陣列,把陣列裡所有數字拼接起來排成乙個數,列印能拼接出的所有數字中最小的乙個。例如輸入陣列,則列印出這三個數字能排成的最小數字為321323。2 資料結構 陣列,字串,排序...
劍指Offer系列45 把陣列排成最小的數
輸入乙個正整數陣列,把陣列裡所有數字拼接起來排成乙個數,列印能拼接出的所有數字中最小的乙個。示例 1 輸入 10,2 輸出 102 示例 2 輸入 3,30,34,5,9 輸出 3033459 說明 輸出結果可能非常大,所以你需要返回乙個字串而不是整數 拼接起來的數字可能會有前導 0,最後結果不需要...