拼数

alt

解题思想

两个字符串要比较拼起来的大小,就直接将两者拼起来a+b或b+a,比较大小 有理论证明,要比较大于三个及三个以上字符串拼起来大小,也只要将两者拼起来大的形式放前面就好(注意并不是把大的放前面eg."433"、"4",“4433”比“4334”大)

代码:

#include<bits/stdc++.h>
using namespace std;
bool cmp(string a,string b){
	return a+b>b+a;
}
int main(){
	int n;
	string a[22],b="";
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>a[i];
	}
	sort(a,a+n,cmp);
	for(int i=0;i<n;i++){
		b+=a[i];
	}
	cout<<b<<endl;
	return 0;
}