携程笔试求解

第三题rgb只过了12.5,请大佬们帮忙看下有啥问题!感谢!!!
from collections import Counter,defaultdict
n = int(input())
s = input()
dic = defaultdict(lambda : [])
for i in range(n-1):
    a,b = list(map(int,input().split()))
    dic[a].append(b)
cnt = Counter(s)
res = 0

def dfs(x,tmp_dic):
    global res
    if x not in dic:
        tmp_dic[s[x-1]] = tmp_dic.get(s[x-1],0) + 1
        return tmp_dic
    for i in dic[x]:
        tag = dfs(i,{})
        for z in tag.keys():
            tmp_dic[z] = tmp_dic.get(z,0) + tag[z]
    tmp_dic[s[x-1]] = tmp_dic.get(s[x-1],0) + 1
    if len(tmp_dic)==3 and (cnt['r'] - tmp_dic['r']>0 and cnt['g'] - tmp_dic['g']>0 and cnt['b'] - tmp_dic['b']>0):
        res += 1
    return tmp_dic

dfs(1,{})
print(res)


#携程笔试#
全部评论
终于看到了个python的了😂
点赞 回复 分享
发布于 2022-08-30 23:44 浙江
无向图
1 回复 分享
发布于 2022-08-30 21:10 广西
口胡思路 https://www.nowcoder.com/discuss/1033903
点赞 回复 分享
发布于 2022-08-30 21:36 广西
有第四题的代码吗
点赞 回复 分享
发布于 2022-08-30 21:16 广东

相关推荐

03-26 13:04
已编辑
电子科技大学 算法工程师
xiaowl:你这个简历“条目上”都比较有深度性,但是实际上面试官又没法很好的评估你是怎么达到很多看上去很厉害的结果的。要避免一些看上去很厉害的包装,比如高效的内存复用策略的表达,如果仅是简单的一些内存共享机制,而且面试上也没有深挖的空间,就不要这样表达。比如,工程化模式本质上可能就是定义了一些abstract class,那也就没特别多值得讲的内容。建议简历上应该侧重那些你花了大量时间和精力解决、研究的问题,不要过分追求“丰富”,而是关注在技术深入度、问题解决能力的表现上。
没有实习经历,还有机会进...
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

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