最小字符串
「题目描述」
给定一些字符串(只包含小写字母),要求将他们串起来构成一个字典序最小的字符串。
「输入格式」
第一行T,表示有T组数据。
接下来T组数据
每组第一行一个正整数n,表示字符串个数。
接下来n行,每行一个字符串(长度不超过100)。
「输出格式」
T个字典序最小的字符串。
「样例输入」
1
3
a
b
c
「样例输出」
abc
「数据范围」
对于30%的数据 T<=100;
对于100%的数据 T<=7000,n<=100;
题解
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int T,n; char ch[101]; string str[101]; bool cmp(string a,string b) {return a+b<b+a;} int main() { //freopen("str.in","r",stdin); //freopen("str.out","w",stdout); scanf("%d",&T); for(int t=1;t<=T;t++) { scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%s",ch); str[i]=ch; } sort(str+1,str+n+1,cmp); for(int i=1;i<=n;i++)cout<<str[i]; printf("\n"); } return 0; } |
Subscribe