题解 | #查找兄弟单词#

查找兄弟单词

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

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

bool isBrother(string a, string b) {
    if (a.size() != b.size()) {
        return false;
    }
    if (a == b) {
        return false;
    }

    sort(a.begin(), a.end());
    sort(b.begin(), b.end());
    if (a == b) {
        return true;
    }
    return false;
}

int main() {
    string str;
    int dicNum;
    int k;
    vector<string> dic;
    string letter;
    vector<string> dicB;
    cin >> dicNum;

    for (int i = 0; i < dicNum; i++) {
        cin >> str;
        dic.push_back(str);
    }
    cin >> letter;
    cin >> k;

    for (auto& it : dic) {
        if (isBrother(it, letter)) {
            dicB.push_back(it);
        }
    }
    sort(dicB.begin(), dicB.end());

    cout << dicB.size() << endl;
    if (k - 1 < dicB.size()) {
        cout << dicB[k - 1] << endl;
    }
}

注意一下输入的读取,输出的内容以及是否输出。

这题主要是巧用sort,既可以用来辅助判断是否为兄弟词,又可以用来给找出来的兄弟词按词典排序。

这个按词典排序也是个坑,我开始以为它的输入就叫词典排序的输入,但是其实是应该自己检查完后再排序

华为机试刷题记录 文章被收录于专栏

记录一下手打代码的解题思路方便复习

全部评论

相关推荐

06-08 22:25
门头沟学院 Java
从零开始的转码生活:这hr不会打开手机不分青红皂白给所有人群发这句话,过一会再给所有人再发一遍,这肯定会有重复的,不管,再过一会再发一遍
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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