题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1113
题解:输入单词,判断字典里是否存在和输入的一样的单词(字典单词字母可以任意排序)。将字典里的单词(组成单词的字母排序)按字典序排列,输入的单词也按字典序排序,在进行比较。
#include <iostream>
#include <string>
#include <map>
#include <algorithm>
using namespace std;
map<string,string>mp;
map<string,string>::iterator iter;
int main()
{
string END="XXXXXX",tpstr="******";
string str,word,temp;
int flag;
while((cin>>str)&&(str!=END))
{
word=str;
sort(str.begin(),str.end());
mp[word]=str;
}
while((cin>>str)&&(str!=END))
{
flag=0;
sort(str.begin(),str.end());
for(iter=mp.begin();iter!=mp.end();++iter)
{
if(iter->second==str)
{
flag=1;
cout<<iter->first<<endl;
}
}
if(!flag)
cout<<"NOT A VALID WORD"<<endl;
cout<<tpstr<<endl;
}
return 0;
}