题解 | #查找兄弟单词#

查找兄弟单词

https://www.nowcoder.com/practice/03ba8aeeef73400ca7a37a5f3370fe68

#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
bool isbro(string s1,string s2){
    if(s1.length()!=s2.length()) return false;
    else{
        if(s1==s2) return false;
        int ap[26]={0};
        for(int i=0;i<s1.length();i++){
            ap[s1[i]-'a']++;
            ap[s2[i]-'a']--;
        }
        for(int i=0;i<26;i++){
            if(ap[i]!=0){return false;}
        }
        //时间复杂度O (N),但是要多花常数个空间
        return true;
    }
}
int main() {
    int n,number;
    cin>>n;
    vector<string> v1(n);
    vector<string> v2;
    for(int i=0;i<n;i++){
        cin>>v1[i];
    }
    string s1;
    cin>>s1;
    cin>>number;
    for(int i=0;i<n;i++){
        if(isbro(s1,v1[i])){
            v2.push_back(v1[i]);
        }
    }
    sort(v2.begin(), v2.end());
    cout<<v2.size()<<endl;
    if(number<v2.size()){
        cout<<v2[number-1]<<endl;
    }
    

}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

09-19 12:15
门头沟学院 Java
迷茫的大四🐶:这下是真的打牌了,我可以用感谢信和佬一起打牌吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务