60pts,#4#5RE
查看原帖
60pts,#4#5RE
1251508
neocoding楼主2024/8/28 14:38
#include <bits/stdc++.h>
using namespace std;
string a,b;
struct nd{
	char v;
	int l,r;
};
nd tr[22];
void build(int la,int ra,int lb,int rb,int k){
	int p=a.find(b[rb]);
	tr[k].v=b[rb];
	if(p>la){
		tr[k].l=2*k;
		build(la,p-1,lb,lb+p-la-1,2*k);
	}
	if(p<ra){
		tr[k].r=2*k+1;
		build(p+1,ra,lb+p-la,rb-1,2*k+1);
	}
}
void qian(int k){
	cout<<tr[k].v;
	if(2*k<a.size()) qian(2*k);
	if(2*k+1<a.size()) qian(2*k+1);
}
int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	cin>>a>>b;
	int l=a.size();
	build(0,l-1,0,l-1,1);
	qian(1);
}

2024/8/28 14:38
加载中...