C++的思路与解题
兄弟单词:
1,不能一样 :用 string判断
2,长度相同 :用 multiset.zise()判断
3,每一种的元素数量相同:用(multiset)判断

#include <iostream>
using namespace std;
#include <string>
#include <set>
#include <vector>
int main() 
{
    string str,taget;
    vector<string> T;
    multiset<string> bro;//可以有相同兄弟单词
    multiset<char> lis1;
    multiset<char> lis2;
    int size=0,i=0;
    int num=0,k=0;
    cin >>num;
    for(i=0;i<num;i++)
    {
        cin>>str;
        T.push_back(str);  
    }
    cin>>taget>>k;
    for(i=0;i<taget.size();i++)//目标放到可以重复且排序的lis1里
    {
        lis1.insert(taget[i]);  
    }

    for(vector<string>::iterator it=T.begin();it!=T.end();it++)
    {
        for(i=0;i<(*it).size();i++)//放到lis2
        {
            lis2.insert((*it)[i]);  
        }
        if(taget.size()==(*it).size() && taget!=*it)//相同不能算兄弟字符
        {
            if(lis1==lis2)//元素排序,相同即为兄弟元素
            {
                bro.insert(*it);//自动排序
            }
        }
        lis2.clear();
    }
    cout<<bro.size()<<endl;
    T.clear();
    if(k<=bro.size())
    { 

      for(set<string>::iterator ak=bro.begin(); ak!=bro.end();ak++)
      {     
         T.push_back(*ak);
      }
      cout<<T[k-1];
    }
}