代码:
class Solution {
struct cmp{
bool operator()(string s1,string s2){
return s1+s2>s2+s1;
// int n1=s1.size(),n2=s2.size();
// string tmp=s1;
// s1=s1+s2;
// s2=s2+tmp;
// int p1=0,p2=0;
// for(int i=0;i<n1+n2;i++){
// if(s1[i]>s2[i]){
// return true;
// }else if(s1[i]<s2[i]){
// return false;
// }
// }
// return false;
}
};
public:
string largestNumber(vector<int>& nums) {
vector<string> vec;
for(auto num:nums){
vec.push_back(to_string(num));
}
sort(vec.begin(),vec.end(),cmp());
string ans="";
if(vec[0]=="0"){
return "0";
}
for(auto str:vec){
ans+=str;
}
return ans;
}
};
注意:实现cmp仿函数时,For all a,comp(a,a)==false