题解 | #查找兄弟单词#

查找兄弟单词

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

import java.util.Scanner;
import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        List<String> list = new ArrayList<>();
        for (int i = 0; i < n; i++) {
            list.add(scanner.next());
        }
        String word = scanner.next();
        int k = scanner.nextInt();
        // TreeSet会自动排序,也就是按字典序排序,但不能直接输出,需要转换为list
//        TreeSet<String> broList=new TreeSet<>();
        List<String> broList = new ArrayList<>();
        char[] charArray = word.toCharArray();
        Map<Character, Integer> map = new HashMap<>();
        for (char c : charArray)
            map.put(c, map.getOrDefault(c, 0) + 1);
        int num = 0;
        for (String s : list) {
            if (s.equals(word) || s.length() != word.length()) continue;
            char[] cur = s.toCharArray();
            Map<Character, Integer> checkMap = new HashMap<>();
            for (char c : cur) {
                if (map.containsKey(c))
                    checkMap.put(c, checkMap.getOrDefault(c, 0) + 1);
            }
            AtomicInteger j = new AtomicInteger();
            map.keySet().forEach(key -> {
                if (!Objects.equals(map.get(key), checkMap.get(key))) j.set(1);
            });
            if (j.get() == 0) {
                num++;
                broList.add(s);
            }
        }
        System.out.println(num);
        Collections.sort(broList);
        if (k <= broList.size())
//            System.out.println(new ArrayList<>(broList).get(k-1));
            System.out.println(broList.get(k - 1));
    }
}
本来以为用treemap存找到的兄弟单词就好了,省去排序了,结果只通过了八个,结果还是需要用list再排序,因为兄弟单词可以重复

全部评论

相关推荐

某不知名产品:整体看下来还不错,能感觉确实很有手感,实习阶段通过两个项目已经对PM实际工作流程有了清晰认知。我觉得简历中唯一缺少的是对产品数据的描述,尤其是做这种C端的产品,需要PM有基础的数据分析能力。例如通过某个新功能、新策略,产品DAU、转化率有没有发生变化。当然如果确实不涉及这部分的工作,也不要硬着头皮写,毕竟编数据,在面试时很容易露馅。 PS:投简历的时候注意看岗位JD,了解一下对应岗位更希望要一个什么样能力的PM,简历侧重点就需要微调。比如这是一个比较偏策略类的产品岗位,那简历中一定要对各个产品转化环节的数据变化有相对明确的说明。如果是工具类的产品岗位,那就要对市场、用户、竞品这几个部分重点突出。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务