Gooooogle • 4个月前
#include <bits/stdc++.h>
using namespace std;
int sum = 0;
int id = 1;
typedef struct node {
char data;
node *left, *right;
} ltree, *lnode;
void tree(lnode &root, string s, string t) {
if (s.size() == 0) {
root = NULL;
return ;
}
int root_node = s[s.size() - 1];
int pos = t.find(root_node);
string lt = t.substr(0, pos);
string rt = t.substr(pos + 1);
int llen = lt.size();
int rlen = rt.size();
string ls = s.substr(0, llen);
string rs = s.substr(llen, rlen);
root = new node;
if (root) {
root->data = root_node;
tree(root->left, ls, lt);
tree(root->right, rs, rt);
}
}
void post(lnode root) {
if (root) {
if (id % 2 == 1) {
sum += root->data - '0';
}
id++;
post(root->left);
post(root->right);
}
}
int main() {
string s;
string t;
lnode root;
cin >> t >> s;
tree(root, s, t);
post(root);
cout << sum;
return 0;
}
评论:
请先登录,才能进行评论