正整數序列輸出最小的整數

給定一個正整數序列,請嘗試通過將它們重新排列,組合成一個最小的整數。例如輸入爲數組 [3, 6, 9, 12],返回值爲12369。由於有可能會超出整數最大範圍,所以請返回字符串類型。

劍指offer上有

class Solution{
    public:
    string printMin(vector<int> num){
        if(num.size() == 0)
            return "";//如果數組爲空,返回空字符串
        sort(num.begin(), num.end(), cmp);//對數字按照定義的方式排序
        string res = "";
        for(auto i : num){//對於所有數組中的數字,拼接轉爲字符串
            res += to_string(i);
        }
        return res;
    }
     
    static bool cmp(int a, int b){//比較拼接之後的字符串誰更大,ASCII的比較比如312>213
        string stra = to_string(a) + to_string(b);
        string strb = to_string(b) + to_string(a);
        return stra < strb;
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章