题解 | #查找兄弟单词#

查找兄弟单词

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

#include <bits/stdc++.h>
using namespace std;
//20.54
bool isbro(string s1, string s2) {
    /*兄弟单词:首先长度要一样,其次每个字母出现的频数要一样*/
    if (s1 == s2) return false;
    if (s1.length() != s2.length()) return false;
    vector<char> v(26, 0);
    for (int i = 0; i < s1.length(); i++) {
        v[s1[i] - 'a']++;
        v[s2[i] - 'a']--;
    }
    for (int i = 0; i < 26; i++) {
        if (v[i] != 0) return false;
    }
    return true;
}
int main() {
    int n;
    string s;
    int k;
    while (cin >> n) {
        vector<string> v;
        vector<string> bro;
        while (n--) {
            cin >> s;
            v.push_back(s);
        }
        cin >> s; //然后输入一个单词x
        cin >> k;
        int pos = -1;
        //检查是不是兄弟单词
        for (int i = 0; i < v.size(); i++) {
            if (isbro(v[i], s)) {
                bro.push_back(v[i]);
            }
        }
        sort(bro.begin(), bro.end());
        cout << bro.size() << endl;
        if (k <= bro.size()) {
            cout << bro[k - 1];
        }
    }
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

Lorn的意义:你这标个前端是想找全栈吗?而且项目确实没什么含金量,技术栈太少了,边沉淀边找吧 现在学院本想就业好一点四年至少得高三模式两年加油吧
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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