题解
这题见过,本质是排序,只要写个cmp函数就可以了。
Code
class Solution {
public:
string i2s(int a){
if(a==0) return "0";
string res="";
int tmp;
while(a){
tmp=a%10;
a/=10;
res+= '0'+tmp;
}
string ret(res.rbegin(),res.rend());// reverse
return ret;
}
static bool cmp(string &a,string &b){
return a+b > b+a;
}
string largestNumber(vector<int>& nums) {
vector<string> cot(nums.size());
for(int i=nums.size()-1;i>-1;i--){
cot[i] = std::to_string(nums[i]);// int to string
}
sort(cot.begin(),cot.end(),cmp);
if(cot[0]=="0") return "0";
string res="";
for(auto ss:cot){
res+=ss;
}
return res;
}
};