分两步:
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]);
}
}
}
}

京公网安备 11010502036488号