题解 | #二叉搜索树#

二叉搜索树

https://www.nowcoder.com/practice/3d6dd9a58d5246f29f71683346bb8f1b

class Tnode:#树的结构定义
    def __init__(self, data, left: None, right: None):
        self.data = data
        self.left = left
        self.right = right


def sea(T: Tnode, v: int):#构造二叉搜索树
    if T == None:
        return
    if v < T.data:
        if T.left == None:
            T.left = Tnode(v, None, None)
        else:
            sea(T.left, v)
    if v > T.data:
        if T.right == None:
            T.right = Tnode(v, None, None)
        else:
            sea(T.right, v)

#通过前序和中序判断是否为一棵树
def qx(T: Tnode, q: list):
    if T == None:
        return
    q.append(T.data)
    qx(T.left, q)
    qx(T.right, q)


def mid(T: Tnode, mi: list):
    if T == None:
        return
    mid(T.left, mi)
    mi.append(T.data)
    mid(T.right, mi)


n = int(input())
s_t = list(input())
s_T = Tnode(s_t[0], None, None)
s_pr, s_mi = [], []
for k in range(1, len(s_t)):
    sea(s_T, s_t[k])
qx(s_T, s_pr)
mid(s_T, s_mi)
ans = []
for i in range(n):
    t = list(input())
    T = Tnode(t[0], None, None)
    for j in range(1, len(t)):
        sea(T, t[j])
    pr, mi = [], []
    qx(T, pr)
    mid(T, mi)
    if s_mi == mi and s_pr == pr:
        ans.append("YES")
    else:
        ans.append("NO")
for x in ans:
    print(x)

全部评论

相关推荐

预计下个星期就能开奖吧,哪位老哥来给个准信
华孝子爱信等:对接人上周说的是这周
点赞 评论 收藏
分享
无敌虾孝子:喜欢爸爸还是喜欢妈妈
点赞 评论 收藏
分享
菜菜咪:1. 可以使用简历网站的模版,美观度会更好一点 2. 邮箱可以重新申请一个,或者用qq邮箱的别名,部分hr可能会不喜欢数字邮箱 3. 项目经历最好分点描述,类似的项目很多,可以参考一下别人怎么写的 4. 自我评价可加可不加,技术岗更看重技术。最后,加油,优秀士兵
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务