感天动地最笨拙的思路 一点点写完了

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;
    }
}