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