luogu P1012拼数 字符串排序

题目链接:https://www.luogu.org/problemnew/show/P1012
题目大意:给出 n n 个字符串,将这些字符串拼在一起,求字典序最大的组合。


#include<iostream>
#include<cstring>
#include<algorithm>
#include<string>
using namespace std;
const int maxn = 20 + 10;
int n;
string a[maxn];

bool cmp(string a,string b){
    int i=0;
	int lena=a.length(),lenb=b.length();
	while(i<lena && i<lenb){
		if(a[i]==b[i]) {i++;continue;}
		else if(a[i]>b[i]) return true;
		else return false;
	}
	if(i<lenb) return a[0]>b[i];
	else if(i<lena) return a[i]>b[0];
	return false;
}
int main()
{
	cin>>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];
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/Mr_HCW/article/details/88806500