题解 | #查找兄弟单词#
查找兄弟单词
https://www.nowcoder.com/practice/03ba8aeeef73400ca7a37a5f3370fe68
#include <iostream>
#include <vector>
#include <set>
#include <algorithm>
using namespace std;
int main() {
vector<string> vc;
int n;
cin>>n;
for(int i=1;i<=n;i++){
string ss;
cin>>ss;
vc.push_back(ss);
}
string s;
cin>>s;
set<string>st;
int m;
cin>>m;
string sss=s;
sort(s.begin(),s.end());
do{
st.insert(s);
if(s==sss) st.erase(s);
}while(next_permutation(s.begin(), s.end()));
int ans=0;
vector<string> vcc;
for(auto const&y :vc){
if(st.count(y)){
ans++;
vcc.push_back(y);
}
}
sort(vcc.begin(),vcc.end());
if(vcc.size()<m) cout<<ans;
else cout<<ans<<'\n'<<vcc[m-1];
}
// 64 位输出请用 printf("%lld")
