pat 1004(dfs)

简单搜索题,主要熟悉python语法。
通过字典,一个父结点对应多个儿子结点,进行储存。
代码:

mp={}
mm=0#记录最大层数
record=[0 for i in range(101)]
def dfs(s,level):
    global mm
    if level>mm:
        mm=level
    if s not in mp:#没得儿子的
        record[level]+=1
        return
    for i in mp[s]:
        dfs(i,level+1)
n,m=map(int,input().split())
if n==0:
    exit()
for i in range(m):
    s=input().split()
    fa=s[0]
    mp[fa]=[]
    for j in s[2:]:
        mp[fa].append(j)
dfs("01",0)
for i in range(mm):
    print(record[i],end=" ")
print(record[mm])

你可能感兴趣的:(算法python3.xdfs)