题解 | #查找兄弟单词#

查找兄弟单词

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

全部评论

相关推荐

求个公司要我:接好运
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务