字符串数组中所有字符串组成一个字典序最小的字符串
2017-09-12 09:01
316 查看
如果a+b的字典序小于b+a,就把a放在前面,否则把b放在前面。证明略。
/**
* 所有字符串组成一个字典序最小的字符串
* @param arr
* @return 字典序最小的字符串
*/
public String lowestStrign(String[] arr){
if(arr == null || arr.length == 0){
return "";
}
Arrays.sort(arr, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return (o1+o2).compareTo(o2+o1);
}
});
String res = "";
for (String s : arr) {
res += s;
}
return res;
}
/**
* 所有字符串组成一个字典序最小的字符串
* @param arr
* @return 字典序最小的字符串
*/
public String lowestStrign(String[] arr){
if(arr == null || arr.length == 0){
return "";
}
Arrays.sort(arr, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return (o1+o2).compareTo(o2+o1);
}
});
String res = "";
for (String s : arr) {
res += s;
}
return res;
}
相关文章推荐
- 将一个字符串数组中的字符串拼接出来,使得字典序最小
- 一个整形数组中有正数也有负数,数组中连续一个或多个组成子数组,每个子数组都有一个和,求所有子数组中和的最大值
- 输入一个整数数组,返回所有元素两两之差绝对值最小的值,O(n)算法
- 一个数组由2n个整数组成,把这个数组分成两半,各有n个整数,求一个分法,使这两个子数组和的差最小
- 有一段文本,将文本中的所有单词存放到一个字符串数组中
- 【codeforces 724D】【贪心】 Dense Subsequence 【一个字符串,按照一定的区间要求从中选出一些字符,使得这串字符的sort后字典序最小】
- 输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的一个。例如输入数组{32, 321},则输出这两个能排成的最小数字32132
- 输出一个字符串数组所有非空子集
- 输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的一个
- Java编程:定义一个int型的一维数组,包含10个元素,分别赋一些随机整数,然后求出所有元素的最大值,最小值,平均值,和值,并输出出来。
- 一个整形数组,数组里有正数也有负数。 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和,求所有子数组的和的最大值,要求时间复杂度为O(n)。
- 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
- 两个有序数组,从中各取一个组成pair,求和最小的前K个pair(杨氏矩阵top k问题)
- 把数组中数字连起来组成一个最小的数字
- N个数组,从每个数组中取出一个数,组成一个序列,输出所有可能的情况
- 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
- 9.1数组与字符串(一)——确定一个字符串的所有字符是否完全不同
- 定义一个由整数组成的数组,然后输入一个整数X,如果X不在此数组中,返回小于X的最大数的位置i和大于X的最小数的位置j
- 输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的一个
- 程序员面试金典: 9.11 排序与查找 11.1编写一个方法,对字符串数组进行排序,将所有变位词排在相邻的位置。