s4553711
8/3/2017 - 3:06 PM

179.cpp

class Solution {
public:
    int static comp(string s1, string s2){
        return (s1 + s2) > (s2 + s1);
    }
    
    string largestNumber(vector<int>& nums) {
        vector<string> ret;
        for(int i = 0; i < nums.size(); i++) {
            ret.push_back(to_string(nums[i]));
        }
        
        std::sort(ret.begin(), ret.end(), comp);
        string res;
        for(int i = 0; i < ret.size(); i++) {
            res += ret[i];
        }
        
        int i = 0;
        while(i < res.size() - 1 && res[i] == '0') {
            i++;
        }
        res = res.substr(i);
        
        return res;
    }
};