题目描述
对于每一个输入的单词进行排序,存放到mulrimap中,multimap可以一个键对应多个值
对输入的单词也进行排序,在map中找是否存在
#include<iostream>
#include<map>
#include<algorithm>
using namespace std;
int main(){
int t,n;
string temp;
cin>>t;
while(t--){
multimap<string,string>mp;
string str;
cin>>n;
for(int i=0;i<n;i++){
cin>>str;
temp=str;
sort(temp.begin(),temp.end());
mp.insert(make_pair(temp,str));
}
while(cin>>str&&str!="END"){
temp=str;
sort(temp.begin(),temp.end());
cout<<"Anagrams for: "<<str<<endl;
int num=1;
bool flag=false;
for(map<string,string>::iterator it=mp.begin();it!=mp.end();it++){
if(temp==it->first){
flag=true;
printf("%3d) %s\n",num++,it->second.c_str());
}
}
if(!flag)
cout<<"No anagrams for: "<<str<<endl;
}
if(t)
cout<<endl;
}
}