题目链接:
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1095
题解:
直接用两个map存下两次的出现的次数,在直接相减就行了。
代码:
#include <map>
#include <cstdio>
#include <string>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
#define met(a,b) memset(a,b,sizeof(a))
#define inf 0x3f3f3f3f
int n,m;
int main()
{
while(cin>>n)
{
string s1,s2;
map<string,int>mp1;
map<string,int>mp2;
for(int i=0;i<n;i++)
{
cin>>s1;
mp1[s1]++;
sort(s1.begin(),s1.end());
mp2[s1]++;
}
cin>>m;
while(m--)
{
cin>>s2;
int num1=mp1[s2];
sort(s2.begin(),s2.end());
int num2=mp2[s2];
cout<<abs(num1-num2)<<endl;
}
}
}