R7-11 h0096. 单词合并 (10 分)

简介: R7-11 h0096. 单词合并 (10 分)

R7-11 h0096. 单词合并 (10 分)


在美国的很多报纸上,有一种单词游戏 Jumble 。这一游戏的目的是解字谜,为了找到答案中的字母,就要整理 4 个单词。请您编写一个整理单词的程序。


输入格式:


输入包含 4 个部分:


1 )字典,包含至少 1 个至多 100 个的单词,每个单 词一行;


2 )一行内容为 XXXXXX ,表示字典结束;


3 )一个或多个你要整理的 “ 单词 ” ;


4 )一行内容为 XXXXXX ,表示文件的结束。所有的单词, 无论是字典单词还是要整理的单词,都是小写英文字母,至少 1 个字母,至多 6 个字母( XXXXXX 是由大写的 X 组成),字典中单词不排序,但每个单词只出现一次。


输出格式:


对于输入中每个要整理的单词,输出在字典里存在的单词,单词的字母排列可以不同,如果在字典中找到不止一个单词对应时要把他们按字典序进行排序。每个单词占一行。如果没找到相对应的单词则输出NOT A VALID WORD ,每输出对应的一组单词或 NOT A VALID WORD 后要输出****** 。


输入样例:


tarp
given
score
refund
only
trap
work
earn
course
pepper
part
XXXXXX
resco
nfudre
aptr
sett
oresuc
XXXXXX


输出样例:


score
******
refund
******
part
tarp
trap
******
NOT A VALID WORD
******
course
******


全排列函数的功能好像不是想象中的那么强大并没有全对


#include<bits/stdc++.h>
using namespace std;
int main(){
    map<string,int>mp;
    vector<string>v;
    string s;
    int cnt=0;
    while(cin>>s){
        if(s=="XXXXXX")cnt++;
        else{
            if(cnt==0)
                mp[s]=1;
            else if(cnt==1)
                v.push_back(s);
        }
    }
    for(int i=0;i<v.size();i++){
        int f=0;
        while(next_permutation(v[i].begin(),v[i].end())){
            if(mp[v[i]]==1)
                cout<<v[i]<<endl,f=1;
        }
        if(!f)cout<<"NOT A VALID WORD\n******\n";
        else  cout<<"******"<<endl;
    }
    return 0;
}
目录
相关文章
|
7月前
1768.交替合并字符串
1768.交替合并字符串
28 0
|
7月前
|
Python C++ 机器人
C/C++每日一练(20230419) 插入区间、单词拆分、不同路径
C/C++每日一练(20230419) 插入区间、单词拆分、不同路径
48 0
C/C++每日一练(20230419) 插入区间、单词拆分、不同路径
h0129. 最长单词 (5 分)
h0129. 最长单词 (5 分)
170 0
|
算法 索引
算法训练Day36|435. 无重叠区间 ● 763.划分字母区间 ● 56. 合并区间
算法训练Day36|435. 无重叠区间 ● 763.划分字母区间 ● 56. 合并区间
每日三题-子集、单词搜索、删除无效的括号
每日三题 子集 单词搜索 删除无效的括号
82 1
每日三题-子集、单词搜索、删除无效的括号
每日三题-编辑距离、分割等和子集、单词拆分
每日三题-编辑距离、分割等和子集、单词拆分
80 0
每日三题-编辑距离、分割等和子集、单词拆分
7-59 翻转单词顺序 (20 分)
7-59 翻转单词顺序 (20 分)
78 0
|
缓存 分布式计算
六十四、Spark-分别统计各个单词个数及特殊字符总个数
六十四、Spark-分别统计各个单词个数及特殊字符总个数
六十四、Spark-分别统计各个单词个数及特殊字符总个数
|
索引
【刷题记录】30. 串联所有单词的子串
【刷题记录】30. 串联所有单词的子串
125 0
【刷题记录】30. 串联所有单词的子串