分两步:
1、查找兄弟串,通过排序后的字符串比较
2、使用Arrays.sort对字符串排序
import java.util.*; public class Main{ public static void main(String [] args){ getBrotherString(); } public static void getBrotherString(){ Scanner scan = new Scanner(System.in); while(scan.hasNext()){ // 提取入参 int len = scan.nextInt(); String [] str = new String[len]; for(int i = 0; i<len; i++){ str[i] = scan.next(); } String flag = scan.next(); int num = scan.nextInt(); // 提取目标字符串排序后的字符串 char[] arrayCh = flag.toCharArray(); Arrays.sort(arrayCh); String flagTemp = new String(arrayCh); // 循环查找兄弟串 String temp = ""; List<String> list = new ArrayList<>(); int flagLen = flag.length(); for(int i = 0; i<len; i++){ if(str[i].equals(flag) || str[i].length() != flagLen){ continue; } arrayCh = str[i].toCharArray(); Arrays.sort(arrayCh); temp = new String(arrayCh); if(temp.equals(flagTemp)){ list.add(str[i]); } } // 输出结果 System.out.println(list.size()); if(list.size() >= num){ String [] ret = list.toArray(new String[0]); Arrays.sort(ret); System.out.println(ret[num-1]); } } } }