感天动地最笨拙的思路 一点点写完了
JAVA
import java.util.*;
public class Main{
public static void main(String[]args){
Scanner sc =new Scanner(System.in);
int num =sc.nextInt();
String change[]= new String[num];
String org= new String();
String bro[]= new String[num];
int order;
for (int i=0;i<num;i++){
change[i]=sc.next();
}
org=sc.next();
order=sc.nextInt();
Main main1=new Main();
int bronum=0;
for(String s:change){
if(main1.isbro(org,s)==true){
bro[bronum]=s;
bronum++;
}
}
List<String> list=new ArrayList<String>(Arrays.asList(bro));
list.removeIf(Objects::isNull);
Collections.sort(list);
System.out.println(list.size());
if (order-1<list.size()){
System.out.println(list.get(order-1));
}
}
public boolean isbro(String a,String b){
if(a.equals(b)){
return false;
}
if(a.length()!=b.length()){
return false;
}
int exist[]=new int[a.length()];
char[]asp=a.toCharArray();
char[]bsp=b.toCharArray();
for(int i=0;i<asp.length;i++){
for(int j=0;j<bsp.length;j++){
if (asp[i]==bsp[j]){
exist[i]=1;
bsp[j]='\u0000';
break;
}
}
}
for(int i=0;i<exist.length;i++){
if(exist[i]==0){
return false;
}
}
return true;
}
}


京公网安备 11010502036488号