注意情形为[0, 0]时的情况,此时输出应该是“0”,而不是“00”;

struct cmp{
    bool operator() (const string& a, const string& b){
        return a+b > b+a;
    }
};
class Solution {
public:
    /**
     * 最大数
     * @param nums int整型vector 
     * @return string字符串
     */
    string solve(vector<int>& nums) {
        // write code here
        int n = nums.size();
        if(n == 0){
            return "";
        }
        vector<string> A(n);
        
        for(int i=0; i<n; i++){
            A[i] = to_string(nums[i]);
        }
        
        sort(A.begin(), A.end(), cmp());
        string res = "";
        int i=0;
        while(i<n && A[i] == "0"){
            i++;
        }
        for(; i<n; i++){
            res += A[i];
        }
        return res.length() == 0 ? "0" : res;
    }
};