查找兄弟单词

    xiaoxiao2021-03-25  99

    题目

    描述

    输入

    先输入字典中单词的个数,再输入n个单词作为字典单词。 输入一个单词,查找其在字典中兄弟单词的个数 再输入数字n(表明查找的第几个兄弟单词)

    输出

    根据输入,输出查找到的兄弟单词的个数

    输出指定的第n个兄弟单词

    样例输入

    3 abc bca cab abc 1

    样例输出

    2 bca

    代码

    #include <iostream> #include <algorithm> #include <string> #include <vector> using namespace std; int main() { int numDic,outnum,count=0,k=0; string Dic[1000]; vector<string> brother; string word,tmp; cin>>numDic;//输入字典中单词的个数 for(int i=0; i<numDic; i++)//输入n个单词作为字典单词 { cin>>Dic[i]; } sort(Dic,Dic+numDic); cin>>word;//待查找的单词 tmp=word; sort(tmp.begin(),tmp.end());//字典序排序 //如果相同则不用考虑,因为是相同单词,不能算作兄弟单词 if (tmp!=word) { brother.push_back(tmp); } while(next_permutation(tmp.begin(),tmp.end())) { if(tmp!=word) { brother.push_back(tmp); //得到兄弟单词 } } for(int i=0; i<numDic; i++) { int flag=1; for(int j=0; j<brother.size(); j++) { if(Dic[i]==brother[j]) //如果能找到兄弟单词 { count++; flag=0; break; } } if(flag) //如果找不到就把相应的字典单词设为0 Dic[i]="0"; } cin>>outnum; cout<<count<<endl; if (count!=0) { for(int i=0; i<numDic; i++) { if(Dic[i]!="0") k++; if(k==outnum) { cout<<Dic[i]<<endl; break; } } } else { return 0; } }

    传送门:查找兄弟单词

    转载请注明原文地址: https://ju.6miu.com/read-38751.html

    最新回复(0)