思维题 打乱顺序再匹配就是排序后相等
#include<iostream>
#include<algorithm>
#include<map>
using namespace std;
string s,ss;
map<string,int> mp;
int main(){
int n;
cin>>s>>n;
while(n--){
cin>>ss;
sort(ss.begin(),ss.end());
mp[ss]++;
}
int ans=0;
int m=s.size();
for(int i=0;i<=m-8;i++){
string t=s.substr(i,8);
sort(t.begin(),t.end());
ans+=mp[t];
}
cout<<ans;
return 0;
}