题解 | #查找兄弟单词#
查找兄弟单词
https://www.nowcoder.com/practice/03ba8aeeef73400ca7a37a5f3370fe68
#include <iostream> using namespace std; #include <vector> #include <algorithm> bool brotherWords(string a,string b) { if(a==b) return false; int arr1[26]={0}; int arr2[26]={0}; int m=a.size(),n=b.size(); for(int i=0;i<m;i++) arr1[a[i]-'a']++; for(int i=0;i<n;i++) arr2[b[i]-'a']++; for(int i=0;i<26;i++) if(arr1[i]!=arr2[i]) return false; return true; } int main() { int n; cin>>n; string *dict=new string[n]; vector<string> ans; int count=0; for(int i=0;i<n;i++) cin>>dict[i]; string s; int index; cin>>s>>index; for(int i=0;i<n;i++) if(brotherWords(s,dict[i])) { count++; ans.push_back(dict[i]); } sort(ans.begin(),ans.end()); cout<<count<<endl; if(count!=0) cout<<ans[index-1]<<endl; } // 64 位输出请用 printf("%lld")