只需要统计单词里各个字母出现的次数,次数都一样即为兄弟单词。

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int count = in.nextInt();
        String[] ss = new String[count];
        for (int i = 0; i < count; i++) {
            ss[i] = in.next();
        }
        String s = in.next();
        int k = in.nextInt();
        Map<Character, Integer> sp = new HashMap<>();
        for (int i = 0; i < s.length(); i++) {
            if (sp.containsKey(s.charAt(i))) {
                sp.put(s.charAt(i), sp.get(s.charAt(i)) + 1);
            } else {
                sp.put(s.charAt(i), 1);
            }
        }
        ArrayList<String> list = new ArrayList<>();
        for (int j = 0; j < count; j++) {
            String b = ss[j];
            if(b.length() != s.length()) continue;
            Map<Character, Integer> bp = new HashMap<>();
            boolean same = true;
            for (int i = 0; i < b.length(); i++) {
                if(s.charAt(i) != b.charAt(i)){
                    same = false;
                }
                if (bp.containsKey(b.charAt(i))) {
                    bp.put(b.charAt(i), bp.get(b.charAt(i)) + 1);
                } else {
                    bp.put(b.charAt(i), 1);
                }
            }
            if(same) continue;
            boolean bro = true;
            for(char key : bp.keySet()){
                if(bp.get(key) != sp.get(key)){
                    bro = false;
                    break;
                }
            }
            if(bro){
                list.add(b);
            }
        }
        list.sort((o1,o2)->o1.compareTo(o2));
        System.out.println(list.size());
        if(k>0 && k<=list.size()){
            System.out.println(list.get(k-1));
        }
    }
}