题目
资源限制
时间限制:1.0s 内存限制:256.0MB
问题描述
给定一些字符串(只包含小写字母),要求将他们串起来构成一个字典序最小的字符串。
输入格式
第一行T,表示有T组数据。
接下来T组数据
每组第一行一个正整数n,表示字符串个数。
接下来n行,每行一个字符串(长度不超过100)。
输出格式
T行,每行一个字符串。
样例输入
1
3
a
b
c
样例输出
abc
数据规模和约定
T<=7000,n<=100;
解析
贪心排序,核心一行秒了,没什么好说的哈,还是一道水题。
涉及字符串的比较,这里通过 Comparator 接口实现自定义排序,在实现 Comparator 接口时,要重写 compare 方法。
代码
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int T = in.nextInt();
for (int k=0; k<T; k++) {
int n = in.nextInt();
ArrayList<String> str = new ArrayList<String>();
for (int i=0; i<n; i++) {
String temp = in.next();
str.add(temp);
}
str.sort(new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
// TODO Auto-generated method stub
String temp1 = o1+o2;
String temp2 = o2+o1;
return temp1.compareTo(temp2);
}
});
for (int i=0; i<n; i++) {
System.out.print(str.get(i));
}
System.out.println();
}
in.close();
}
}
如果我的博客对你有用的话,请给一个一键三连吧!