题解 | #查找兄弟单词#

查找兄弟单词

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")

全部评论

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务