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;
}
};