题解 | #查找兄弟单词#

查找兄弟单词

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

import java.util.Scanner;
import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int nums = in.nextInt();
        String[] dir = new String[nums];
        for (int i = 0; i < nums; i++)
            dir[i] = in.next();
        String x = in.next();
        int k = in.nextInt();
        Arrays.sort(dir);
        List<String> brothers = new LinkedList<>();
        TreeMap<Character, Integer> mp = new TreeMap<>();
        for (int i = 0; i < x.length(); i++) {
            char ch = x.charAt(i);
            if (!mp.containsKey(ch)) mp.put(ch, 0);
            else {
                mp.put(ch, mp.get(ch) + 1);
            }
        }
        for (String s : dir) {
            if (s.length() != x.length() || s.equals(x)) continue;
            TreeMap<Character, Integer> bro_mp = new TreeMap<>();
            for (int i = 0; i < s.length(); i++) {
                char ch = s.charAt(i);
                if (!bro_mp.containsKey(ch)) bro_mp.put(ch, 0);
                else {
                    bro_mp.put(ch, bro_mp.get(ch) + 1);
                }
            }
            if(!bro_mp.equals(mp)) continue;
            brothers.add(s);

        }
        System.out.println(brothers.size());
        if(k<=brothers.size())
            System.out.println(brothers.get(k-1));

    }

}

全部评论

相关推荐

StephenZ_:我9月份找的第一段实习也是遇到这种骗子公司了,问他后端有多少人和我说7个正职,进去一看只有一个后端剩下的都是产品前端算法(没错甚至还有算法)。还是某制造业中大厂,我离职的时候还阴阳怪气我
点赞 评论 收藏
分享
_mos_:要不是看评论区我都不知道你要找的是数分
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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