UVA642 Word Amalgamation(查字典类)

Love The Way You Lie 2023-06-13 14:28 110阅读 0赞

经典的查字典题+经典的map应用

题目描述

在美国各地的数百万份报纸中,有一款名为Jumble的文字游戏。 这个游戏是要解决一个谜语,但为了找到答案中出现的字母来解读四个字是必要的。 你的任务是编写一个可以解读单词的程序。

输入

输入文件包含4个部分: 1、字典,由至少一个,最多100个字组成,每行一个; 2、包含′XXXXXX′的行,表示字典的结尾; 3、一个或多个你必须解读的混乱的“单词”,每个单词都在一条线上; 4、包含’XXXXXX’的另一行,它表示文件的结尾。 所有单词,包括字典单词和加扰单词,仅由小写英语组成字母,长度至少为一个,最多六个字符。(注意,哨兵’XXXXXX’包含 多个大写X’。) 字典不一定按排序顺序,但字典中的每个单词都是独特的。

输出

对于输入中的每个加扰字,输出可以是的所有字典单词的字母列表。 通过重新排列乱码中的字母而形成的。此列表中的每个单词都必须出现在一行中通过它自己。 如果列表为空(因为不能形成字典单词),则输出“NOT A VALID WORD”有效的话,就不用输出。 在任何一种情况下,输出一个包含六个星号的行来表示列表的结尾。

输入输出样例

输入 #1复制

  1. tarp
  2. given
  3. score
  4. refund
  5. only
  6. trap
  7. work
  8. earn
  9. course
  10. pepper
  11. part
  12. XXXXXX
  13. resco
  14. nfudre
  15. aptr
  16. sett
  17. oresuc
  18. XXXXXX

输出 #1复制

  1. score
  2. ******
  3. refund
  4. ******
  5. part
  6. tarp
  7. trap
  8. ******
  9. NOT A VALID WORD
  10. ******
  11. course
  12. ******

思想总结:对字典进行映射,将要写入的词进行排序作为唯一的key,实际的词作为value。相同字母得到同一个key,而value则不同。

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. struct node{
  4. string word[105];//相同字母的拼音
  5. int count=0;//第几个拼音
  6. };
  7. map<string,node> dict; //string为排序后的拼音,node为原拼音
  8. int main(){
  9. //写入字典
  10. string s,temp;
  11. while(cin>>s&&s!="XXXXXX"){
  12. temp=s;//保存排序后的拼音
  13. sort(temp.begin(),temp.end());
  14. dict[temp].word[dict[temp].count]=s;
  15. dict[temp].count++;
  16. }
  17. //比对字典
  18. while(cin>>s&&s!="XXXXXX"){
  19. temp=s;
  20. sort(temp,temp.end());
  21. if(dict[temp].count!=0){//存在
  22. sort(dict[temp].word,dict[temp].word+dict[temp].count);//word[]数组,则word就代表首地址
  23. for(int i=0;i<dict[temp].count;i++){
  24. cout<<dict[temp].word[i]<<endl;
  25. }
  26. cout<<"******"<<endl;
  27. }else{
  28. cout<<"NOT A VALID WORD"<<endl;
  29. cout<<"******"<<endl;
  30. }
  31. }
  32. return 0;
  33. }

发表评论

表情:
评论列表 (有 0 条评论,110人围观)

还没有评论,来说两句吧...

相关阅读

    相关 改变word的语言字典

    上周末看论坛有人提出否有方法用代码改变word的语言字典,因为默认的语言会影响现用语言输入的拼写器和其他校对工具。我们的[Spire.doc][]正好支持,正好闲来无

    相关 word 寻替换

    查寻替换图片 - 实现批量添加题注 MS WORD 查寻替换图片 - 实现批量添加题注 1 先插入一个题注 2. 查找图片并替换 (wps

    相关 NYOJ 642-牛奶

    牛奶 时间限制: 1000 ms | 内存限制: 65535 KB 难度: 2 描述 伊格内修斯每天都喝牛奶,他现在是在超市里,他要选择一瓶牛奶。牛奶在超市有很多种

    相关 UVA - 10924 - Prime Words (素数)

    输入一个由大小写字母组成的字符串,每个字符代表着不同的数字,计算出这个字符串的数值,判断是否是素数; 首先我们打个素数表; 然后利用ascll码存入数组中,然后判断就o