题解 | #字符串排序#
字符串排序
https://www.nowcoder.com/practice/5af18ba2eb45443aa91a11e848aa6723
import java.util.*;
/**
关键点:按照字典排序。
**/
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int total = 0;
ArrayList<String> list = null;
while (in.hasNextLine()) {
if (total == 0) {
total = Integer.parseInt(in.nextLine());
list = new ArrayList<String>(total);
} else {
list.add(in.nextLine());
total--;
if (total <=0) {
Collections.sort(list, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
int len1 = o1.length();
int len2 = o2.length();
//找到最小公共长度
int minlen=Math.min(len1,len2);
//处理公共长度部分,从第一位开始,如有不同则比较出结果
for (int i = 0; i < minlen;i++) {
if (o1.charAt(i)<o2.charAt(i))
return -1;
else if(o1.charAt(i)>o2.charAt(i))
return 1;
}
//公共长度部分完全相同,根据长度定顺序
return len1-len2;
}
});
for (String s : list) {
System.out.println(s);
}
break;
}
}
}
}
}