#include<bits/stdc++.h>
using namespace std;
int n;
string s,t;
long long ans=1;
void dfs(int l1,int l2,int r1,int r2)
{
if (l1==r1)
return ;
int pos;
for (int i=l2;i<=r2;i++)
if (t[i]==s[l1+1])
pos=i;
if (pos==r2-1)
{
ans*=2;
dfs(l1+1,r1,l2,r2-1);
return ;
}
int lsz=pos-l2+1;
dfs(l1+1,l1+lsz,l2,pos);
dfs(l1+lsz+1,r1,pos+1,r2-1);
}
int main()
{
cin>>s>>t;
n=s.size();
dfs(0,n-1,0,n-1);
cout<<ans<<"\n";
return 0;
}
提交结果