c++题解 | #查找兄弟单词 30行代码#

查找兄弟单词

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

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
int main (){
    int N, k;
    cin >> N;
    vector<string> input(N), output;
    for(int i = 0; i < N; ++i)
        cin >> input[i];
    string target;
    cin >> target >> k;
    for(int i = 0; i < N; ++i){
        bool flag = true;
        if(input[i].size() != target.size() || input[i] == target)
            continue;
        for(int j = 0; j < input[i].size(); ++j){
            string::iterator it = find(input[i].begin(), input[i].end(), target[j]);
            if(it == input[i].end() || count(input[i].begin(), input[i].end(), *it) != count(target.begin(), target.end(), *it))
                { flag = false; break;}
        }
        if(flag == true)
            output.push_back(input[i]);
    }
    sort(output.begin(), output.end());
    cout << output.size() << endl;
    if(k <= output.size())
        cout << output[k-1];
}
全部评论
优化算法,可以直接排序,对string排序,排序之后如果相等那么就是兄弟,这个算法更好一些
点赞 回复 分享
发布于 2022-03-08 19:11

相关推荐

前辈们好!晚辈是一名在读硕士生,研究方向是计算机视觉、6D位姿估计、手术导航。按照目前的简历水平,请问能否够得着一些互联网大厂的实习面试资格呢,可以申请哪些类型的岗位呀?在考虑算法工程师,但是相比于计算机科班的同学,自己的项目经历还有刷题似乎有些薄弱了。简历还可以在哪些方面进行修改呢?提前感谢大家!
神哥不得了:神哥过年也来解答啦,简历这样写提升空间很大呀,算法的话要求顶刊顶会,如果有的话就会比较好找,看不出来你这两个是不是顶刊顶会,这些课题的话,对找工作帮助没有那么大,如果走算法的话应该会比较难,但是也不是完全没机会的状态
点赞 评论 收藏
分享
点赞 评论 收藏
分享
一天代码十万三:实习东西太少了,而且体现不出你业务,3个月不可能就这点产出吧,建议实习多写点,玩具项目面试官都不感兴趣的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务