题解 | #查找兄弟单词#

查找兄弟单词

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

#include<iostream>
#include<vector>
#include<algorithm>
#include<map>
using namespace std;

bool isBrother(string x, string vi);

int main() {
    int n;
    cin >> n;
    string str;
    vector<string>vec;
    for (int i = 0; i < n; i++) {
        cin >> str;
        vec.push_back(str);
    }
    sort(vec.begin(), vec.end());
    int k;
    string x;
    cin >> x ;
    cin >> k;
    int num = 0;
    string ans;
    for (int i = 0; i < n; i++) {
        if (isBrother(x, vec[i])) {
            num++;
            k--;
            if (k == 0) {
                ans = vec[i];
            }
        }
    }
    cout << num << endl << ans;
}

bool isBrother(string x, string vi) {
    map<char, int>m1, m2;
    pair<char, int>p;
    if (x.size() != vi.size() || x == vi)
        return false;
    for (int i = 0; i < x.size(); i++) {

        if (m1.find(x[i]) != m1.end()) {
            m1[x[i]] += 1;
        } else {
            p.first = x[i];
            p.second = 1;
            m1.insert(p);
        }
    }
    for (int i = 0; i < vi.size(); i++) {

        if (m1.find(vi[i]) != m1.end()) {
            m1[vi[i]] -= 1;
        } else {
            return false;
        }
    }
    for (auto i : m1) {
        if (i.second != 0) {
            return false;
        }
    }
    return true;
}

全部评论

相关推荐

06-27 15:15
长安大学 Java
哈哈哈,你是老六:这种就是培训机构骗钱的
点赞 评论 收藏
分享
06-26 15:33
青岛工学院 Java
积极的秋田犬要冲国企:他现在邀请我明天面试
点赞 评论 收藏
分享
今天投了小鹏,收到了AI面,大概会问哪些啊?
期末一定及格:总共4个部分,心理测评、行测、然后就是问岗位、对岗位的理解、过往遇到了哪些难点怎么解决,很简单,没有什么特别专业的问题,都是一些综合素质相关的
小鹏汽车AI面4人在聊
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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