#7re求助
查看原帖
#7re求助
251074
学习柯学楼主2023/4/4 19:50

rt

#include<bits/stdc++.h>
using namespace std;
string s1,s2;
long long flag, l, len;
char a[105];
void dfs(int x,int l,int r)
{
	if(l+1==r)
	{
		return ;
	}
	for(int i=0;i<len;i++)
	{
		for(int j=l+1;j<r;j++)
		{
			if(s2[i]==s1[j])
			{
				a[x]=s2[i];
				dfs(x*2,l,j);
				goto Flag;
			}
		}
	}
	Flag:
	for(int i=0;i<len;i++)
	{
		for(int j=l+1;j<r;j++)
		{
			if(s2[i]==s1[j])
			{
				a[x]=s2[i];
				dfs(x*2 + 1,j,r);
				return ;
			}
		}
	}
}
int print(int i)
{
	if(a[i*2]!=0)
	{
		print(i*2);
	}
	if(a[i*2+1]!=0)
	{
		print(i*2+1);
	}
	cout<<a[i];
}
int main() {
	cin>>s1>>s2;
	len=s1.size();
	dfs(1,-1,len);
	print(1);
	return 0;
}

2023/4/4 19:50
加载中...