题目
思路
把所有成立的子串用set去重输出个数
#include<iostream>
#include<cstdio>
#include<set>
using namespace std;
unsigned long long k,js,sum,ans;
set<unsigned long long> q;
string s,c;
int main()
{
cin>>s;
cin>>c;
cin>>k;
int lens=s.size();
for(int i=0; i<lens; i++)
{
sum=0,js=0;
for(int j=i; j<lens; j++)
{
if(c[s[j]-97]=='0')
js++;
if(js>k)
break;
sum=sum*131+(s[j]-96);
q.insert(sum);
}
}
cout<<q.size();
return 0;
}