题目描述
有n个数,要求使他们拼接起来得到的数最大
样例
输入样例:
3
121 21 3
输出样例:
321121
我们先用字符串读入。设想一下,有 $s1$ 和 $s2$ 两个字符串,如果 $s1$ 排在前面更优,就把它放在前面,重复这个过程即可( $sort$ 万岁)。
C++ 代码
#include<bits/stdc++.h>
using namespace std;
bool cmp(string a,string b){
return a+b>b+a;
}
int main(){
int n;
cin>>n;
string a[n];
for(int i=0;i<n;i++)cin>>a[i];
sort(a,a+n,cmp);
for(int i=0;i<n;i++){
cout<<a[i];
}
cout<<endl;
return 0;
}