# P1030 [NOIP 2001 普及组] 求先序排列

## 题目描述

给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,且二叉树的节点个数 <=8。

## 输入格式

共两行,均为大写字母组成的字符串,表示一棵二叉树的中序与后序排列。

## 输出格式

共一行一个字符串,表示一棵二叉树的先序。

##输入输出样例#1

###输入#1

```
BADC
BDCA
```

###输出#1

```
ABCD
```

## 说明/提示

**【题目来源】**

NOIP 2001 普及组第三题

处理树,像是在打史莱姆,史莱姆会分裂成两个小史莱姆,就像是左子树,和右子树,写这道题用了栈的思路。
求先序排列,总是要先求左子树,所以可以让右子树先入栈,左子树再入栈,对栈顶的左子树处理,又有新的左右子树,
通过循环操作,处理完整棵树。
代码如下:
n=input()
m=input()
list1=[]
list2=[n]

def check(list2):
    max_num=0
    if len(list2[len(list2)-1])==1:
        list1.append(list2[len(list2)-1])
        del list2[len(list2)-1]
    else:
        for item in list2[len(list2)-1]:
            if m.index(item)>max_num:
                max_num=m.index(item)
        
        num=max_num
        list1.append(m[num])
        str=list2 [len(list2)-1]
        del list2 [len(list2)-1]
        num1=str.index(m[num])
        if str[num1+1::]!='':
            list2.append(str[num1+1::])
        if str[0:num1]!='':
            list2.append(str[0:num1])
    
    
while(list2!=[]):
    check(list2)
print(''.join(list1))
全部评论

相关推荐

刚刷到字节跳动官方发的消息,确实被这波阵仗吓了一跳。在大家还在纠结今年行情是不是又“寒冬”的时候,字节直接甩出了史上规模最大的转正实习计划——ByteIntern。咱们直接看几个最硬的数,别被花里胡哨的宣传词绕晕了。首先是“量大”。全球招7000多人是什么概念?这几乎是把很多中型互联网公司的总人数都给招进来了。最关键的是,这次的资源分配非常精准:研发岗给了4800多个Offer,占比直接超过六成。说白了,字节今年还是要死磕技术,尤其是产品和AI领域,这对于咱们写代码的同学来说,绝对是今年最厚的一块肥肉。其次是大家最关心的“转正率”。官方直接白纸黑字写了:整体转正率超过50%。这意味着只要你进去了,不划水、正常干,每两个人里就有一个能直接拿校招Offer。对于2027届(2026年9月到2027年8月毕业)的同学来说,这不仅是实习,这简直就是通往大厂的快捷通道。不过,我也得泼盆冷水。坑位多,不代表门槛低。字节的实习面试出了名的爱考算法和工程实操,尤其是今年重点倾斜AI方向,如果你简历里有和AI相关的项目,优势还是有的。而且,转正率50%也意味着剩下那50%的人是陪跑的,进去之后的考核压力肯定不小。一句话总结:&nbsp;27届的兄弟们,别犹豫了。今年字节这是铁了心要抢提前批的人才,现在投递就是占坑。与其等到明年秋招去千军万马挤独木桥,不如现在进去先占个工位,把转正名额攥在手里。
喵_coding:别逗了 50%转正率 仔细想想 就是转正与不转正
字节7000实习来了,你...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务