中后====>前
#include<iostream>
#include<cstring>
#include<string>
using namespace std;
string a, b;
void dfs(int l1, int l2, int l3, int l4)
{
if (l1 > l1 || l3 > l4){
return;
}
for (int i = l1; i <= l2; i++)
{
if (a[i] == b[l4])
{
cout << a[i];
dfs(l1, i - 1,l3,l3+i-l1-1);
dfs(i + 1, l2,l3+i-l1,l4-1);
}
}
}
int main()
{
cin >> a >> b;
int len = a.size();
dfs(0, len - 1, 0, len - 1);
return 0;
}
中前====>后
#include<iostream>
#include<cstring>
#include<string>
using namespace std;
string a, b;
void dfs(int l1, int l2, int l3, int l4)
{
if (l1 > l1 || l3 > l4){
return;
}
for (int i = l1; i <= l2; i++)
{
if (a[i] == b[l3])
{
dfs(l1, i - 1,l3+1,l3+i-l1 );
dfs(i + 1, l2, l3 + i - l1+1,l4);
cout << a[i];
}
}
}
int main()
{
cin >> a >> b;
int len = a.size();
dfs(0, len - 1, 0, len - 1);
return 0;
}片