python代码 67分 debug求助
查看原帖
python代码 67分 debug求助
17600
xuyuezhi5116楼主2023/10/27 20:16
def func(m,p):
    root=p[0] 
    loc_r=m.find(root) //找出根节点在中序遍历中的位置
    ml,mr='','' //左\右子树的中序(mid)
    pl,pr='',''//左\右字数的前序(pre
    lr=1      //前序遍历中,右子树的根所在位置
    if loc_r!=0:     //有左子树
        ml=m[:loc_r] //取出左子树中序
        for i in range(1,len(p)): //遍历前序
            if not p[i] in ml: //取出第一个不在左子树中的节点
                lr=i
                break
        if lr==1: //若没有右子树(未搜索到不在左子树的节点
            lr=len(p)
        pl=p[1:lr] //取出左子树前序
    if loc_r!=len(p)-1:  //有右子树
        mr=m[loc_r+1:]  //取出右子树中序
        pr=p[lr:]   //取出右子树前序
    if ml!='':     
        func(ml,pl)
    if mr!='':
        func(mr,pr)
    print(root,end='')
mid=input()
pre=input()
func(mid,pre)
2023/10/27 20:16
加载中...