1、题目描述
给一个数组,连接数组中的所有数字,形成一个长数字,返回形成的最大数字。
2、思路
对数字转换成字符串,对字符串重新排序,再连接。主要处理0的情况。
3、代码
string largestNumber(vector<int>& nums) {
vector<string>v;
for(int i=0;i<nums.size();i++){
v.push_back(to_string(nums[i]));
}
sort(v.begin(),v.end(),cmp);
string ans;
for(int i=0;i<v.size();i++){
ans+=v[i];
}
if(ans=="0"||ans[0]!='0') return ans;
int i=0;
while(ans[i]=='0') i++;
if(i==ans.size()) return "0";
else return ans.substr(i);
}
static bool cmp(string a,string b){
return a+b>b+a;
}