2018秋招小红书算法方向在线编程题

Posted tsdblogs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2018秋招小红书算法方向在线编程题相关的知识,希望对你有一定的参考价值。

技术分享图片

技术分享图片

代码如下:

class TreeNode:
    def __init__(self, x):
        self.left=None
        self.right=None
        self.value=x

def BuildTree(ceng, zhong):
    if len(ceng)==0:
        return None
    if len(ceng)==1:
        return TreeNode(ceng[0])
    else:
        flag=TreeNode(ceng[0])
        root=ceng[0]
        zong=zhong[:zhong.index(ceng[0])]
        cen=[]
        for i in ceng:
            if i in zong:
                cen.append(i)
        flag.left=BuildTree(cen,zong)
        cen = []
        zong=zhong[zhong.index(ceng[0])+1:]
        for i in ceng:
            if i in zong:
                cen.append(i)
        flag.right=BuildTree(cen,zong)
        return flag


def PrintLeafNode(root,node):
    if root==None:
        return
    if root.left==None and root.right==None:
        node.append(root.value)
    PrintLeafNode(root.left, node)
    PrintLeafNode(root.right, node)


def PreTravel(root,node):
    if root==None:
        return
    node.append(root.value)
    PreTravel(root.left, node)
    PreTravel(root.right, node)


def BackTravel(root, node):
    if root==None:
        return
    BackTravel(root.left, node)
    BackTravel(root.right, node)
    node.append(root.value)



ceng=input().strip().split(" ")
zhong=input().strip().split(" ")
root=BuildTree(ceng, zhong)
leaf=[]
pre=[]
back=[]
PrintLeafNode(root, leaf)
PreTravel(root, pre)
BackTravel(root, back)
print(" ".join(leaf))
print(" ".join(pre))
print(" ".join(back))

 

以上是关于2018秋招小红书算法方向在线编程题的主要内容,如果未能解决你的问题,请参考以下文章

2023秋招面经小红书 前端-提前批(1h)

2023秋招面经小红书 前端-提前批(1h)

数据挖掘2020奇安信秋招算法方向试卷3 笔试题解析

数据挖掘2020奇安信秋招算法方向试卷1 笔试题解析

小红书2018提前批笔试题之01个数相同的最长子序列

数据挖掘2022年2023届秋招Kanaries雾角科技算法岗 笔试题