目录
一、选择题
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;elsecout<<c;}//cout<<endl;return 0;
}