题解HJ14 | #字符串排序#
字符串排序
https://www.nowcoder.com/practice/5af18ba2eb45443aa91a11e848aa6723
import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); Integer num = in.nextInt(); List<String> list = new ArrayList<>(); for (int i = 0; i < num; i++) { list.add(in.next()); } Collections.sort(list, new Comparator<String>() { @Override public int compare(String o1, String o2) { char[] chars1 = o1.toCharArray(); char[] chars2 = o2.toCharArray(); int i = 0; while (i < chars1.length && i < chars2.length) { if (chars1[i] != chars2[i]) { return chars1[i] - chars2[i]; } else { i++; } } return chars1.length - chars2.length; } }); list.forEach(s -> System.out.println(s)); } }
很典型的字典序排序 还有注意next()和nextLine()的区别