问题描述:
给定一些由,隔开的字符串,请将他们按字典序排列。
约束:1.字符串仅包含小写字母。
2.字符串数量 ≤1000,且总长度<=10^5
样例
输入: “bb,aa,lintcode,c”
输出: “aa,bb,c,lintcode”
说明: 在字典序中,“aa” < “bb” < “c” < “lintcode”
问题分析:
主要问题是字符串分割之后将所有字符按照自然顺序进行排序;次要问题是将排序后的字符再重新组成一个长串;下面给出代码
public class Solution {
/**
* @param s: string
* @return: sort string in lexicographical order
*/
public String sorting(String s) {
// write your code here
if(s==null||!s.contains(",")){
return s;
}
String[] arrays=s.split(",");
Arrays.sort(arrays);
String result="";
for(int i=0;i<arrays.length;i++){
result+=arrays[i]+",";
}
return result.substring(0,result.length()-1);
}
}
思路也比较简单,由于string已经实现了Comparable的比较方法并且默认就是自然排序的,所以直接使用Arrays中的sort方法即可,如果要求是反向的排序,可以在使用sort方法的时候重新定义一个比较器即可,比如:
Arrays.sort(arrays, (a,b) -> b.compareTo(a));
不过这样执行时间可能会慢一些了!
下面时通过结果: