题解 | #查找兄弟单词#

数据分类处理

http://www.nowcoder.com/practice/9a763ed59c7243bd8ab706b2da52b7fd

#include<bits/stdc++.h>
using namespace std;
static bool cmp(string &a, string &b) {
    int i;
    for (i = 0; i < a.size() && i < b.size(); i++) {
        if (a[i] < b[i]) {
            return true;
        }
        else if (a[i] > b[i]) {
            return false;
        }
    }
    if (a.size() < b.size()) return true;
    else return false;
}
void func(vector<string> &vec, string &target, int targetNum) {
    vector<int> label(26, 0);
    vector<string> bro;
    int sum = 0;
    for (auto &ch : target) {
        label[ch - 'a']++;
        sum++;
    }
    for (auto str1 : vec) {
        vector<int> labelTemp = label;
        bool isBro = true;
        if (str1 == target || str1.size() != target.size()) {
            continue;
        }
        for (auto ch : str1) {
            labelTemp[ch - 'a']--;
            if(labelTemp[ch - 'a'] < 0) {
                isBro = false;
                break;
            }
        }
        if (isBro) {
            bro.push_back(str1);
        }
    }
    sort(bro.begin(), bro.end(), cmp);
    cout << bro.size() << endl;
    if (bro.size() >= targetNum) {
        cout << bro[targetNum - 1]<<endl;
    }
}
int main() {
    int n;
    vector<string> vec;
    string target;
    int targetNum;
    while (cin >> n) {
        while (n--) {
            string str;
            cin >> str;
            vec.push_back(str);
        }
        cin >> target;
        cin >> targetNum;
    }
    func(vec,target, targetNum);
}
全部评论

相关推荐

ohs的小木屋:比不少实习待遇高了
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-01 17:13
想去,但是听说加班强度实在难崩,所以拒绝了,现在有点心梗对面hr感觉也是实习生,打电话的时候怪紧张的,但是感觉人很好嘞
水中水之下水道的鼠鼠:哥们这不先去体验一下,不行再跑呗,大不了混个实习经历(有更好的转正offer就当我没说)
点赞 评论 收藏
分享
强大的马里奥:不太可能,我校计算机硕士就业率99%
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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