HDU 1113
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1113
题目大意:给你一个字典,其中若干单词。进行若干次查询,查询字典中是否有和查询字符串字母组成完全一样的单词,并输出之。
分析:水题。关键在于如何判断单词和查询的字符串是否符合要求,用sort()函数。将单词和查询字符串统一用sort()排序后的结果进行比较,如果一样,那么原单词和字符串就属于符合要求的,输出即可。
至于是否要使用map,如果用map的话,写起来会更舒服
AC代码:
int main()
{
map<string,string> m;
string s1,s2;
while(cin>>s1&&s1!="XXXXXX")
{
s2=s1;
sort(s2.begin(),s2.end());
m[s1]=s2;
}
string target;
while(cin>>target&&target!="XXXXXX")
{
sort(target.begin(),target.end());
bool flag=true;
for(map<string,string>::iterator it=m.begin();it!=m.end();++it)
{
if(target==it->second)
{
cout<<it->first<<endl;
flag=false;
}
}
if(flag)
{
cout<<"NOT A VALID WORD"<<endl;
}
cout<<"******"<<endl;
}
return 0;
}