51Nod 1095 Anigram单词 | Hash
Input示例
5 add dad bad cad did 3 add cac dda
Output示例
1 0 2
题意:一系列字符串,查询字符串S,能通过其他字符串交换串内字符顺序得到的字符串个数
思路:将每个字符串字符排序,map计数
#include <iostream> #include <string.h> #include <algorithm> #include <map> using namespace std; #define MAXN 10001 char s[2*MAXN][15]; char str[15]; map<string,int> a,b; int main(){ int n,q; while (cin>>n){ for (int i=0;i<n;i++){ cin>>s[i]; a[s[i]]++; int len=strlen(s[i]); sort(s[i],s[i]+len); b[s[i]]++; } cin>>q; while (q--){ cin>>str; int k=a[str]; int len=strlen(str); sort(str,str+len); int ans=b[str]; cout<<ans-k<<endl; } } return 0; }