拼数。
#include<iostream>
#include<string>
using namespace std;
bool compare(string a,string b)
{
if(a+b>=b+a)//ab>=ba,这个时候不需要交换
return false;
return true;//ab<ba,这个时候需要交换
}
int main()
{
int n;
cin>>n;
string arr[20],temp;
for(int a=0;a<n;a++)
cin>>arr[a];
for(int i=0;i<n-1;i++)
for(int j=i+1;j<n;j++)
if(compare(arr[i],arr[j])) //如果为true则交换,
{
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
for(int k=0;k<n;k++)
cout<<arr[k];
cout<<endl;
return 0;
}
#include<string>
using namespace std;
bool compare(string a,string b)
{
if(a+b>=b+a)//ab>=ba,这个时候不需要交换
return false;
return true;//ab<ba,这个时候需要交换
}
int main()
{
int n;
cin>>n;
string arr[20],temp;
for(int a=0;a<n;a++)
cin>>arr[a];
for(int i=0;i<n-1;i++)
for(int j=i+1;j<n;j++)
if(compare(arr[i],arr[j])) //如果为true则交换,
{
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
for(int k=0;k<n;k++)
cout<<arr[k];
cout<<endl;
return 0;
}