Python题解 P1030 【求先序排列】

· · 个人记录

题解:

概括为step1:找到根并输出

step2:将中序,后序各分为左右两棵子树;

step3:递归,重复step1,2;

AC代码:

import math
import cmath
import string
import sys
from queue import Queue,LifoQueue,PriorityQueue
from itertools import permutations,combinations
from collections import deque,Counter

def beford(in1,after):
    if len(in1)>0:
        ch=after[len(after)-1]
        print(ch,end="")
        k=in1.index(ch)
        beford(in1[0:k],after[0:k])
        beford(in1[k+1:],after[k:-1])

if __name__=='__main__':
    inord=input()
    aford=input()
    beford(inord,aford)