题解 | #查找兄弟单词#
查找兄弟单词
https://www.nowcoder.com/practice/03ba8aeeef73400ca7a37a5f3370fe68
#include <iostream> using namespace std; #include <bits/stdc++.h> int main() { int n,k; cin>>n; vector<string>str(n),res; for(int i = 0; i < n; i++){ cin>>str[i]; } string x; cin>>x; cin>>k; map<char,int>mx,m; for(char c:x)mx[c]++; for(int i = 0; i < n; i++){ m.clear(); if(str[i].size() != x.size())continue; if(str[i] == x)continue; for(char c : str[i]) m[c]++; if(m == mx) res.push_back(str[i]); } sort(res.begin(),res.end()); cout<<res.size()<<endl; if(res.size() < k) return 0; else cout<<res[k-1]<<endl; return 0; } // 64 位输出请用 printf("%lld")