题目
解法
import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int num = Integer.valueOf(sc.nextLine()); ArrayList<String> list = new ArrayList<>(); for(int i=0;i<num;i++){ list.add(sc.nextLine()); } Collections.sort(list, new Comparator<String>() { @Override public int compare(String o1, String o2) { // TODO Auto-generated method stub char[] arr1 = o1.toCharArray(); char[] arr2 = o2.toCharArray(); int ptr1 = 0; int ptr2 = 0; for( ; ptr1 < arr1.length && ptr2 < arr2.length; ptr1++,ptr2++ ){ if(arr1[ptr1] < arr2[ptr2]){ return -1; }else if(arr1[ptr1] > arr2[ptr2]){ return 1; } } if(ptr1 == arr1.length && ptr2 == arr2.length) return 0; return ptr1 == arr1.length ? -1 : 1; } }); for(String string : list){ System.out.println(string); } } }