版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_42391248/article/details/85213694
排序规则:
两个字符串a,b。
如果ab<ba 那就a在b之前。
比如a=312,b=31.
31231<31312
所以312在31之前。
排完序就是按照规则输出就行了。
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<string>
using namespace std;
bool cmp(string a,string b)
{
string s1=a+b;
string s2=b+a;
return s1<s2;
}
int main()
{
string str[10005];
int n,i;
cin>>n;
for(i=0;i<n;i++)
cin>>str[i];
sort(str,str+n,cmp);
int len=0;
for(i=0;i<n;i++)
{
len+=str[i].length();
if(len>=1000)
{
len-=str[i].length();
for(int j=0;j<str[i].length();j++)
{
cout<<str[i][j];
len++;
if(len==1000)
cout<<endl;
}
}
else
cout<<str[i];
len%=1000;
}
cout<<endl;
return 0;
}