import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String infixOrder = sc.nextLine(); // 中序
String postOrder = sc.nextLine(); // 后序
sc.close();
System.out.println(preOrder(infixOrder, postOrder));
}
static String preOrder(String infix, String post) {
if (infix.isEmpty() || post.isEmpty()) return ""; // 递归终止
char root = post.charAt(post.length() - 1); // 后序最后一个一定是根节点
int rootIndex = infix.indexOf(root); // 根节点索引
// 中序:左子树→根节点→右子树
String infixLeft = infix.substring(0, rootIndex); // 中序的左子树
String infixRight = infix.substring(rootIndex + 1); // 中序的右子树,不包含中间的根节点
// 后序:左子树→右子树→根节点
String postLeft = post.substring(0, infixLeft.length()); // 后序的左子树
String postRight = post.substring(infixLeft.length(), post.length() - 1); // 后序的右子树,不包含最后的根节点
// 前序:根节点→左子树→右子树
return root + preOrder(infixLeft, postLeft) + preOrder(infixRight, postRight); // 左右子树分别递归继续执行
}
}
每日一水~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~