题解 | #最大数#
最大数
http://www.nowcoder.com/practice/fc897457408f4bbe9d3f87588f497729
public:
/**
* 最大数
* @param nums int整型vector
* @return string字符串
*/
/*static bool cmp(string a,string b){
int i=0,m=a.size(),n=b.size();
while(i<m&&i<n){
if(a[i]>b[i]) return true;
else if(a[i]<b[i]) return false;
else i++;
}
while(i<m){
if(a[i]>b[n-1]) return true;
else if(a[i]<b[n-1]) return false;
else i++;
}
while(i<n){
if(a[m-1]>b[i]) return true;
else if(a[m-1]<b[i]) return false;
else i++;
}
return m>n;
}*/
static bool cmp(string a,string b){
return a+b>b+a;
}
string solve(vector<int>& nums) {
// write code here
int i,n=nums.size();
vector<string> ve(n);
for(i=0;i<n;i++){
ve[i]=to_string(nums[i]);
}
sort(ve.begin(),ve.end(),cmp);
if(ve[0]=="0") return "0";
string res="",temp;
for(i=0;i<n;i++){
res+=ve[i];
temp+="0";
}
return res;
}
};