#2、#10RE
#6~#8WA
# include<bits/stdc++.h>
using namespace std;
string s1,s2;
long long dfs(string s1,string s2)
{
int len=s2.size(),pos=s2.find(s1[1]);
if(len<=1) return 0;
if(s1[0]==s2[0]) return 1;
else if(s1[1]==s2[len-2]) return 2*dfs(s1.substr(1),s2.substr(0,len-1));
else
{
return dfs(s1.substr(1,pos),s2.substr(0,pos))*dfs(s1.substr(pos+2,len-pos-2),s2.substr(pos+1,len-pos-2));
}
}
int main()
{
int len;
cin>>s1>>s2;
len=s1.size();
cout<<dfs(s1.substr(0),s2.substr(0));
return 0;
}
下载了#2,Dev-C++报错信息:
terminate called after throwing an instance of 'std::out_of_range'
what(): basic_string::substr: __pos (which is 4) > this->size() (which is 3)