题目描述
给定一个数组由一些非负整数组成,现需要将他们进行排列并拼接,使得最后的结果最大,返回值需要是string类型 否则可能会溢出
示例1
输入
[30,1]
返回值
"301"
备注:
输出结果可能非常大,所以你需要返回一个字符串而不是整数。
class Solution {
public:
/**
* 最大数
* @param nums int整型vector
* @return string字符串
*/
static bool cmp(string a, string b){
return a+b > b+a;
}
string solve(vector<int>& nums) {
// write code here
vector<string> str_arr;
for(int i=0;i<nums.size();i++){
str_arr.push_back(to_string(nums[i]));
}
sort(str_arr.begin(),str_arr.end(),cmp);
string res;
int i=0;
while(i<str_arr.size()-1 && str_arr[i]=="0"){
i++;
}
for(;i<str_arr.size();i++){
res+=str_arr[i];
}
return res;
}
};