题解 | #查找兄弟单词#

查找兄弟单词

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

大概有2个注意点。
1.与目标字符串完全相同的字符串不属于兄弟单词。
2.要对兄弟字符串数组进行字典序排序
#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
#include<math.h>
#include<set>
using namespace std;
bool cmp(const string &str1,const string &str2)
{
    int num = min(str1.size(),str2.size());
    for(int i = 0;i < num;i++)
    {
        if(str1[i] != str2[i])
        {
            return str1[i] < str2[i];
        }
    }
    return str1.size() < str2.size();
}
bool isBrother(string &str,string &target)
{
    if(str.size() != target.size())
    {
        return false;
    }
    if(str == target)
    {
        return false;
    }
    vector<char>tmp1;
    vector<char>tmp2;
    tmp1.assign(str.begin(),str.end());
    tmp2.assign(target.begin(),target.end());
    sort(tmp1.begin(),tmp1.end());
    sort(tmp2.begin(),tmp2.end());
    for(int i = 0;i < tmp1.size();i++)
    {
        if(tmp1[i] != tmp2[i])
        {
            return false;
        }
    }
    return true;
}
int main()
{
    int num;
    while(cin >> num)
    {
        vector<string>strs(num);
        for(int i = 0;i < num;i++)
        {
            cin >> strs[i];
        }
        string target;
        cin >> target;
        vector<string>brother;
        for(int j = 0;j < num;j++)
        {
            if(isBrother(strs[j],target))
            {
                brother.push_back(strs[j]);
            }
        }
        int k;
        cin >> k;
        cout << brother.size() << endl;
        if(k > brother.size())
        {
            continue;
        }
        sort(brother.begin(),brother.end(),cmp);
        cout << brother[k - 1] << endl;
    }
    return 0;
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
今天 11:22
点赞 评论 收藏
分享
Twilight_m...:表格简历有点难绷。说说个人看法: 1.个人基本情况里好多无意义信息,什么婚姻状况、健康状况、兴趣爱好、户口所在地、身份证号码、邮政编码,不知道的以为你填什么申请表呢。 2.校内实践个人认为对找工作几乎没帮助,建议换成和测开有关的项目,实在没得写留着也行。 3.工作经历完全看不出来是干什么的,起码看着和计算机没啥关系,建议加强描述,写点你在工作期间的实际产出、解决了什么问题。 4.个人简述大而空,看着像AI生成,感觉问题最大。“Python,C,C++成为我打造高效稳定服务的得力工具”、“我渴望凭借自身技术知识与创新能力,推动人工智能技术的应用发展,助力社会实现智能化转型”有种小学作文的美感。而且你确定你个人简述里写的你都会嘛?你AI这块写的什么“深入研究”,发几篇顶会的硕博生都不一定敢这么写。而且你AI这块的能力和软测也完全无关啊。个人简述建议写你对哪些技术栈、哪些语言、哪些生产工具的掌握,写的有条理些,而且最好是和测开强相关的。
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-07 18:05
哈哈哈哈哈感觉朋友找工作的已经疯掉了,直接上图
码农索隆:真老板娘:“我嘞个去,这不我当年的套路吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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