题解 | 查找兄弟单词

查找兄弟单词

https://www.nowcoder.com/practice/03ba8aeeef73400ca7a37a5f3370fe68

import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        String[] str = new String[n];
        for (int i = 0; i < n; i++) {
            str[i] = in.next();
        }
        String x = in.next();
        int k = in.nextInt();
        List<String> bro = new ArrayList<>();  //按key自动升序

        //判断是不是兄弟单词
        int[] letter = new int[26];  //x中字母出现次数
        for (int i = 0; i < x.length(); i++) {
            letter[x.charAt(i)-'a']++;
        }
        String lNum = Arrays.toString(letter);  //转换成字符串

        for (int i = 0; i < n; i++) {
            String s = str[i];
            if (s.length() != x.length() || s.equals(x)) {
                continue;
            }

            int[] sLetter = new int[26];  //兄弟串中字母出现的次数
            for (int j = 0; j< s.length(); j++) {
                sLetter[s.charAt(j) - 'a']++;
            }

            String sLNum = Arrays.toString(sLetter);  //转换成字符串
            if (sLNum.equals(lNum)) {  //是兄弟单词
                bro.add(s);
            }
        }

        //升序排序List
        Collections.sort(bro);
        System.out.println(bro.size());

        if (k <= bro.size()){
            System.out.print(bro.get(k -1));
        }
    }

}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务