题解 | #查找兄弟单词#
查找兄弟单词
https://www.nowcoder.com/practice/03ba8aeeef73400ca7a37a5f3370fe68
#include<iostream> #include<string> #include<vector> #include<set> #include<algorithm> using namespace std; static bool isbrother(string word,string brotherword) { multiset<char> wordset; multiset<char> brotherwordset; bool sign=1; if(word==brotherword||word.size()!=brotherword.size()) { sign=0; } else { for(auto it:word) { wordset.insert(it); } for(auto it:brotherword) { brotherwordset.insert(it); } auto itwset=wordset.begin(); multiset<char>::iterator itbwset=brotherwordset.begin(); for(;itwset!=wordset.end();) { if(*itwset!=*itbwset) { sign=0; break; } itwset++; itbwset++; } } return sign; } int main() { int n; vector<string>arry; string word; int x; vector<string> brothervector; string itemp; cin>>n; while(n--) { cin>>itemp; arry.push_back(itemp); } cin>>word; cin>>x; for(int i=0;i<arry.size();i++) { if(isbrother(word,arry[i])) { brothervector.push_back(arry[i]); } } sort(brothervector.begin(),brothervector.end()); cout<<brothervector.size()<<endl; if(x<=brothervector.size()) { cout<<brothervector[x-1]<<endl;; } return 0; }