本文共 900 字,大约阅读时间需要 3 分钟。
第1行:1个数N,表示字典中单词的数量。(1 <= N <= 10000)第2 - N + 1行,字典中的单词,单词长度 <= 10。第N + 2行:查询的数量Q。(1 <= Q <= 10000)第N + 3 - N + Q - 2行:用作查询的单词,单词长度 <= 10。
共Q行,输出Anigram的数量,相同的2个单词不算Anigram,如果没有输出0。
5adddadbadcaddid3addcacdda
102
思路:将所有单词进行排序,查询时统计在未排序前相同的个数和排序后相同的个数,二者之差为答案。排序采用sort,统计采用map。
const int maxn=10000+10;char s[maxn][11],str[11];mapmap1,map2;int n,q;int main(){ ios::sync_with_stdio(false); cin>>n; for(int i=0;i >s[i]; map1[s[i]]++; int len=strlen(s[i]); sort(s[i],s[i]+len); map2[s[i]]++; } cin>>q; while(q--) { cin>>str; int k=map1[str]; int len=strlen(str); sort(str,str+len); int ans=map2[str]; cout< <
转载地址:http://yeali.baihongyu.com/