124 条题解
-
0xcjzj LV 3 @ 2006-09-21 20:15:11
递归算法。利用的是一个规律,就是每个树(包括子数)的根节点总在其后序排列的最后,先序排列的最前,且根节点在中序排列中的位置分割左、右子树的中序排列。这样,将问题化为多个子问题即可。
-
02006-05-22 21:32:54@
注意回车符的问题(我交了5次)
-
02006-05-01 04:40:50@
注意要打回车...我吃亏了
-
-12017-01-22 21:42:38@
#include <bits/stdc++.h>
#include <ext/pb_ds/tree_policy.hpp>
#include <ext/pb_ds/assoc_container.hpp>
using namespace std;int n;
char mid[10], after[10];void dfs(int l, int r, int p, int q) {
if (l > r) return;
printf("%c", after[q]);
int k = l;
while (mid[k] != after[q]) k++;
dfs(l, k - 1, p, p + k - l - 1);
dfs(k + 1, r, q - r + k, q - 1);
}int main() {
scanf("%s%s", mid + 1, after + 1);
n = strlen(mid + 1);
dfs(1, n, 1, n);
return 0;
}