题意:给出N个字符串,问这N个字符串可以组成的字典序最小的字符串是什么。
思路:乱搞怎么都不对,看了题解也不明白为什么。。
正解:保证相邻的两个串连接起来是字典序最小的,那么拼接起来的总串就是字典序最小的(然而并不明白是为什么)。
代码:
#include<bits/stdc++.h>
using namespace std;
string s[100010];
bool cmp(string a,string b)
{
return a+b<b+a;
}
int main()
{
string c;
int n,len=0;
cin>>n;
for(int i=0;i<n;i++)
cin>>s[i];
sort(s,s+n,cmp);
for(int i=0;i<n;i++)
cout<<s[i];
}