知道二叉树的前序遍历和后序遍历
求二叉树的棵树可能性
关键在于:数拥有单子树的节点个数
特征:只有一棵子树的前序假如是AC, 其后序为CA。若有两棵子树,前序为ABC, 后序为BCA。
// Problem#: 1210
// Author#: Reid Chan
#include <iostream>
#include <string>
#include <cmath>
using namespace std;
int main() {
string pre;
string suf;
cin >> pre >> suf;
int cnt = 0;
int len1 = pre.length(), len2 = suf.length();
for (int i = 0; i < len1; i++) {
for (int j = len2 - 1; j >= 0; j--) {
if (pre[i] == suf[j]) {
if (j != 0 && i != len1 - 1 && pre[i + 1] == suf[j - 1]) cnt++;
break;
}
}
}
cout << (int)pow(2.0, (double)cnt);
return 0;
}