题解 | #字符串排序#
字符串排序
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; } } } } }