刷题Day1

目录

  • 一、选择题
  • 二、编程题
    • 2.1 组队竞赛
    • 2.2 删除公共字符

一、选择题

刷题Day1_第1张图片
刷题Day1_第2张图片

二、编程题

2.1 组队竞赛

刷题Day1_第3张图片
刷题Day1_第4张图片
参考代码:

#include 

int main()
{
    priority_queue<int> pq;
    int n=0;
    cin>>n;
    int tmp=0;
    for(size_t i=0;i<3*n;i++)
    {
        cin>>tmp;
        pq.push(tmp);
    }
    long long sum=0;
    for(size_t i=0;i<n;i++)
    {
        pq.pop();
        //取第二大,第四大...,一共取n个求和
        sum+=pq.top();
        pq.pop();
    }
    cout<<sum<<endl;

    return 0;
}

2.2 删除公共字符

刷题Day1_第5张图片
刷题Day1_第6张图片
参考代码:

int main()
{
    string str1;
    string str2;
    //不能用cin,因为cin遇到空格会结束
    //getline读取一行,以回车为结束符
    getline(cin,str1);
    getline(cin,str2);

    int hash[128]={0};
    for(const auto& e:str2)
    {
        //把str2的字符都映射到哈希表的对应位置上
        hash[e]++;
    }
    string ret;
    for(const auto& e:str1)
    {
        //如果str1中的值存在于str2中,那么我们就跳过,即在str1中
        //删除该元素否则,这个字符就是我们要保留的,+=到ret即可
        if(hash[e]==0)
        {
            ret+=e;
        }
    }
    cout<<ret<<endl;

    return 0;
}

你学会了吗?

你可能感兴趣的:(牛客网试题,算法,c++,c语言,数据结构,哈希算法)