美团9.3笔试字母树Java

public class CharacterTree{
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int[] num = new int[n - 1];
        int[] ans = new int[n];
        ArrayList<Integer>[] nm = new ArrayList[n];
        for(int i = 0; i < n ;i++){
            nm[i] = new ArrayList<Integer>();
        }
        for (int i = 0; i < n - 1; i++) {
            num[i] = scanner.nextInt();
            nm[num[i] - 1].add(Integer.valueOf(i + 1));
        }
        scanner.nextLine();
        String string = scanner.nextLine();
        for (int i = 0; i < n; i++) {
            Queue<Integer> queue = new LinkedList<>();
            queue.add(i);
            Set<Character> set = new HashSet<>();
            int count = 0;
            while (!queue.isEmpty()){
                int top = queue.peek();
                queue.poll();
                if(!set.contains(string.charAt(top))){
                    count++;
                    set.add(string.charAt(top));
                }
                for (Integer j : nm[top]){
                    queue.add(j);
                }
            }
            ans[i] = count;
        }
        for (int i = 0; i < n; i++) {
            System.out.println(ans[i]);
        }
    }
}
#美团笔试#
全部评论
{"pureText":"","imgs":[{"alt":"discuss_166****548117.jpeg","height":1623,"localSrc":"content://media/external/images/media/138082","src":"https://uploadfiles.nowcoder.com/message_images/20220905/165664256_1662345547451/discuss_1662345548117.jpeg","width":960}]}
点赞 回复 分享
发布于 2022-09-05 10:39 北京
hi~同学,秋招遇“寒气”,牛客送温暖啦!23届秋招笔面经有奖征集中,参与就得牛客会员7天免费体验,最高赢300元京东卡!戳我去看>>>https://www.nowcoder.com/link/zhengjipinglun
点赞 回复 分享
发布于 2022-09-05 12:38 北京
大佬,你这题全a了ma
点赞 回复 分享
发布于 2022-09-05 16:43 上海

相关推荐

不愿透露姓名的神秘牛友
11-27 10:52
点赞 评论 收藏
分享
点赞 评论 收藏
分享
11-05 07:29
贵州大学 Java
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务