最新消息:680元/半年,推荐全网最具性价比的一站式编程学习平台码丁实验室

信息学奥赛题库- FBI树(fbi)

C++ 少儿编程 994浏览 0评论

友情提示:680元/半年,儿童学编程,就上码丁实验室

【题目描述】

我们可以把由“$0$”和“$1$”组成的字符串分为三类:全“$0$”串称为$B$串,全“$1$”串称为$I$串,既含“$0$”又含“$1$”的串则称为$F$串。

FBI树是一种二叉树,它的结点类型也包括$F$结点,$B$结点和$I$结点三种。由一个长度为$2^N$的“$01$”串$S$可以构造出一棵FBI树$T$,递归的构造方法如下:

$T$的根结点为$R$,其类型与串$S$的类型相同;

若串$S$的长度大于$1$,将串$S$从中间分开,分为等长的左右子串$S_1$和$S_2$;由左子串$S_1$构造$R$的左子树$T_1$,由右子串$S_2$构造$R$的右子树$T_2$。

现在给定一个长度为$2^N$的“$01$”串,请用上述构造方法构造出一棵FBI树,并输出它的后序遍历序列。

【输入】

第一行是一个整数$N(0 le N le 10)$,第二行是一个长度为$2^N$的“$01$”串。

【输出】

一行,这一行只包含一个字符串,即FBI树的后序遍历序列。

【输入样例】

3
10001011

【输出样例】

IBFBBBFIBFIIIFF

【提示】

对于40%的数据,$N le 2$;

对于100%的数据,$N le 10$。

您必须 登录 才能发表评论!