注意情形为[0, 0]时的情况,此时输出应该是“0”,而不是“00”;
struct cmp{
bool operator() (const string& a, const string& b){
return a+b > b+a;
}
};
class Solution {
public:
/**
* 最大数
* @param nums int整型vector
* @return string字符串
*/
string solve(vector<int>& nums) {
// write code here
int n = nums.size();
if(n == 0){
return "";
}
vector<string> A(n);
for(int i=0; i<n; i++){
A[i] = to_string(nums[i]);
}
sort(A.begin(), A.end(), cmp());
string res = "";
int i=0;
while(i<n && A[i] == "0"){
i++;
}
for(; i<n; i++){
res += A[i];
}
return res.length() == 0 ? "0" : res;
}
};