/*
* @author :
* @version : 2018/3/16 21:06.
* 说明:
*/
import java.util.Scanner;
/**
*
* 算法训练 求先序排列
时间限制:1.0s 内存限制:256.0MB
锦囊1
后序的最后一个字母为根结点。
问题描述
给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,长度<=8)。
输入格式
两行,每行一个字符串,分别表示中序和后序排列
输出格式
一个字符串,表示所求先序排列
样例输入
BADC
BDCA
样例输出
ABCD
*
*
*/
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String DLR = sc.next(); // 前循遍历排列
String LRD = sc.next(); // 后序遍历排列
f(DLR,LRD);
}
private static void f(String DLR, String LRD) {
// 后序的最后一个字母为根结点
char root = LRD.charAt(LRD.length()-1);
System.out.print(root);
int position = DLR.indexOf(root);
if (position > 0) {
f(DLR.substring(0,position), LRD.substring(0,position));
}
if (position < LRD.length() -1) {
f(DLR.substring(position+1), LRD.substring(position, DLR.length()-1));
}
}
}