目录
时间限制1s
内存限制128MB
难度3
题目描述
给定一些字符串(只包含小写字母),要求将他们串起来构成一个字典序最小的字符串。
输入
第一行T,表示有T组数据。
接下来T组数据
每组第一行一个正整数n,表示字符串个数。
接下来n行,每行一个字符串(长度不超过100)。
输出
T行,每行一个字符串。
输入样例1
1
3
a
b
c
输出样例1
abc
思路分析
其实就是如何排序这些字符串,就是看它们是如何组合出最小的字符串,先两两组合比较排序就可以了。
AC代码
#include<iostream>
#include<algorithm>
using namespace std;
bool rule(string a, string b)
{
return (a + b) < (b + a);
}
int main()
{
int n, i, t;
cin >> t;
while (t--)
{
cin >> n;
string *p = new string[n];
for (i = 0; i < n; i++)
cin >> p[i];
sort(p, p + n, rule);
for (i = 0; i < n; i++)
cout << p[i];
cout << endl;
delete[] p;
}
}