Given a list of non negative integers, arrange them such that they form the largest number.
Example 1:
Input: [10,2]
Output: "210"
Example 2:
Input: [3,30,34,5,9]
Output: "9534330"
Note: The result may be very large, so you need to return a string instead of an integer.
class Solution {
public:
static bool com(string a,string b)
{
return a+b>b+a?true:false;
}
string largestNumber(vector<int>& nums) {
vector<string>s;
for(int i=0;i<nums.size();i++)
s.push_back(to_string(nums[i]));
sort(s.begin(),s.end(),com);
string ret="";
for(int i=0;i<s.size();i++)
ret+=s[i];
if(ret[0]=='0')
return "0";
else
return ret;
}
};
public:
static bool com(string a,string b)
{
return a+b>b+a?true:false;
}
string largestNumber(vector<int>& nums) {
vector<string>s;
for(int i=0;i<nums.size();i++)
s.push_back(to_string(nums[i]));
sort(s.begin(),s.end(),com);
string ret="";
for(int i=0;i<s.size();i++)
ret+=s[i];
if(ret[0]=='0')
return "0";
else
return ret;
}
};