一个字典中有很多单词,给出一些列单词输入,不考虑且字母的顺序,在字典查到对应的索引
aptr可以在字典中对应到part,tarp,trap
但最后输出单词的顺序必须按字典序的
用map<string,string>
key是单词本身,value是sort之后的结果
eg: <part,aprt> <tarp,aprt> <trap,aprt>
注意map自动按key进行排序
#include <iostream>
#include <map>
#include <string>
#include <stdio.h>
#include <algorithm>
using namespace std;
int main()
{
//freopen("in.txt","r",stdin);
map<string,string>m;
map<string,string>::iterator it;
string s1,s2;
bool tag;
while(cin>>s1&&s1!="XXXXXX"){
s2=s1;
sort(s2.begin(),s2.end());
m.insert(make_pair(s1,s2));
}
//for(it=m.begin();it!=m.end();++it)cout<<it->first<<" "<<it->second<<endl;
while(cin>>s1&&s1!="XXXXXX"){
tag=false;
sort(s1.begin(),s1.end());
for(it=m.begin();it!=m.end();++it){
if(it->second==s1){
cout<<it->first<<endl;
tag=true;
}
}
if(!tag)cout<<"NOT A VALID WORD"<<endl;
cout<<"******"<<endl;
}
return 0;
}