求助减空间复杂度
查看原帖
求助减空间复杂度
280157
星宇,不曾楼主2021/10/20 12:50

2-4全MLE

#include<bits/stdc++.h>
using namespace std;
string middle,back;
void cut(string &q,string p,int begin,int end)//切除左右树 
{
	for(int i=begin;i<end;i++)
	q+=p[i];
}
void f(string str1,string str2)
{
	if(str1.size()==1)
	{
		cout<<str1;
		return;
	} 
	int k;
	string s1,s2,s3,s4;
	char seed=str2[str2.size()-1];
	for(k=0;k<str1.size();k++)
		if(seed==str1[k])
		{
			cout<<seed;//输出根
			cut(s1,str1,0,k);
			cut(s2,str1,k+1,str1.size());
			break;
		}
	for(int i=0;i<str2.size();i++)
	{
	for(int j=0;j<max(s1.size(),s2.size());j++)
	if(s1[j]==str2[i]) s3+=s1[j];
	else
	if(s2[j]==str2[i]) s4+=s2[j];
	}
	f(s1,s3);
	f(s2,s4);
}
int main()
{
	cin>>middle>>back;
	f(middle,back);
}
2021/10/20 12:50
加载中...