1

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;
}

评论:

请先登录,才能进行评论