笔试练习day01

目录

一、选择题

1、格式化输出

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

3、赋值语句

4、左移、异或

二、编程题

1、组队竞赛

2、删除公共字符


一、选择题

1、格式化输出

笔试练习day01_第1张图片
知识点:格式化输出,%m.ns
笔试练习day01_第2张图片

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

笔试练习day01_第3张图片
知识点:

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

3、赋值语句

笔试练习day01_第4张图片
易错点:条件判断位置出现赋值语句时,不要错想成等式判断;赋值语句的值为等号右边的值

4、左移、异或

笔试练习day01_第5张图片
知识点:

  • 左移运算,x<
  • 异或运算–同0非1

二、编程题

1、组队竞赛

笔试练习day01_第6张图片
题目链接:https://www.nowcoder.com/questionTerminal/248ccf8b479c49a98790db17251e39bb

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

#include
#include
#include
using namespace std;

int main()
{
    int grp;
    cin >> grp;
    int n = 3 * grp;
    vector 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、删除公共字符

笔试练习day01_第7张图片
题目链接:https://www.nowcoder.com/practice/f0db4c36573d459cae44ac90b90c6212?tpId=182&tqId=34789&ru=/exam/oj

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

#include
#include
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<

你可能感兴趣的:(算法)