笔试练习day01

目录

一、选择题

1、格式化输出

2、逻辑判断--短路原则

3、赋值语句

4、左移、异或

二、编程题

1、组队竞赛

2、删除公共字符


一、选择题

1、格式化输出

在这里插入图片描述
知识点:格式化输出,%m.ns
在这里插入图片描述

2、逻辑判断--短路原则

在这里插入图片描述
知识点:

  • else和最近的if匹配
  • 条件语句中的逻辑与、或式子中,遵循短路原则(能不执行就不执行),如A&&B中,如果A为假,则不会再执行B,C||D中如果C为真,则不会在执行D

3、赋值语句

在这里插入图片描述
易错点:条件判断位置出现赋值语句时,不要错想成等式判断;赋值语句的值为等号右边的值

4、左移、异或

在这里插入图片描述
知识点:

  • 左移运算,x<<n,结果为x*2^n (每左移一位相当于乘以2)
  • 异或运算–同0非1

二、编程题

1、组队竞赛

在这里插入图片描述
题目链接:https://www.nowcoder.com/questionTerminal/248ccf8b479c49a98790db17251e39bb

思路:把数组排序,每次都去一个最小的和两个最大的为一组

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;

int main()
{
    int grp;
    cin >> grp;
    int n = 3 * grp;
    vector<int> arr;
    arr.resize(n);
    for (int i = 0; i < n; i++)
    {
        //arr未提前申请空间时,应使用尾插
        /*int num;
        cin >> num;
        arr.push_back(num);*/
        cin >> arr[i];
    }
    //参数为迭代器
    sort(arr.begin(), arr.end());
    //防止求和溢出
    long long sum = 0;
    for (int i = 0; i < grp; i++)
    {
        sum += arr[n - 2 * (i + 1)];
    }
    cout << sum << endl;
    return 0;
}

2、删除公共字符

在这里插入图片描述
题目链接:https://www.nowcoder.com/practice/f0db4c36573d459cae44ac90b90c6212?tpId=182&tqId=34789&ru=/exam/oj

思路:创建一个哈希数组,记录第二个字符串的每个字符的出现,然后遍历第一个字符串的同时检查哈希数组,输出答案

#include<iostream>
#include<string>
using namespace std;

int main()
{
    string str1,str2;
    getline(cin,str1);
    getline(cin,str2);

    int hash[128]={0};
    for(auto c:str2)
    {
        hash[c]++;
    }
    for(auto c:str1)
    {
        if(hash[c]!=0)
            continue;
        else
            cout<<c;
    }
    //cout<<endl;
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值