题解 | #查找兄弟单词# 划分为两个部分:判断是否为兄弟单词,将是兄弟单词的按字典序排序

查找兄弟单词

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

#include<iostream>
using namespace std;
#include<vector>
#include<algorithm>
bool isBrother(string a, string b)
{
    if (a == b)
    {
        return false;
    }
    if (a.size() != b.size())
    {
        return false;
    }
    else {
        vector<int>vec1(26, 0);
        for (int i = 0; i < a.size(); i++)
        {
            vec1[a[i] - 'a']++;
            vec1[b[i] - 'a']--;
        }
        for (int i = 0; i < 26; i++)
        {
            if (vec1[i] != 0)
            {
                return false;
            }
        }
    }
    return true;
}
int main()
{
    int N = 0;
    cin >> N;
    vector<string>zidian;
    for (int i = 0; i < N; i++)
    {
        string temp;
        cin >> temp;
        zidian.push_back(temp);
    }
    string target;
    cin >> target;
    int m = 0;
    cin >> m;
    int num = 0;
    vector<string>vec;
    for (int i = 0; i < zidian.size(); i++)
    {
        if (isBrother(target, zidian[i]) == true)
        {
            ++num;
            vec.push_back(zidian[i]);
        }
    }
    sort(vec.begin(), vec.end());
    cout << num << endl;
    if (m <= vec.size())
    {
        cout << vec[m - 1] << endl;
    }
    
    return 0;
}


全部评论

相关推荐

昨天 22:34
已编辑
重庆邮电大学 Java
快手 客户端开发 (n+5)k*16 公积金12
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务