题解 | #查找兄弟单词#
查找兄弟单词
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")