刚开始想法是next_permutation,无疑会T
后面想一下直接map就可以做
#include <bits/stdc++.h>
using namespace std;
map<string,int> mp;
string s,t;
int n,ans;
int main()
{
cin>>s>>n;
for(int i=0;i<=s.size()-8;i++)
{
string x=s.substr(i,8); //每次切8个字符
sort(x.begin(),x.end()); //排序
mp[x]++; //记录出现次数
}
for(int i=0;i<n;i++)
{
cin>>t;
sort(t.begin(),t.end()); //排序
ans+=mp[t]; //加上出现过的次数
}
cout<<ans;
return 0;
}