0827 360笔试

题1:DNA序列
int minChange(string s1, string s2){
	int len = s1.size();
	int res = 0;
	int a1 = 0, a2 = 0;
	for (int i = 0; i < len; i++){
		if (s1[i] == 'A') a1++;
		if (s2[i] == 'A') a2++;
	}
	int dif = abs(a1 - a2);//需要修改多少个字符
	res += dif;
	int cur = 0;
	for (int i = 0; i < len; i++){
		if (s1[i] != s2[i]) {
			if (dif-->0) continue;
			else cur++;
		}
	}
	res += cur / 2;
	return res;
}

题2:不及格的小A
string check(unordered_set<string>& zy, unordered_set<string>& wy, unordered_set<string>& by, string s){
	vector<string> vec;
	istringstream in(s);
	string tmp;
	while (getline(in, tmp, ' ')){
		vec.push_back(tmp);
	}

	bool hasZy=false,hasWy = false;//记录有没有主语谓语
	for (int i = 0; i < vec.size(); i++){
		string cur = vec[i];
		if (i == 0 && zy.count(cur) == 0) return "NO";//没有主语
		else hasZy = true;
		if (wy.count(cur) != 0) {
			if (hasWy) return "NO"; //如果谓语不止一个
			hasWy = true;
		}
	}
	if (!hasWy) return "NO";//没有谓语
	return "YES";
}
输入输出省略了

#360笔试#
全部评论
你这个第二题没有判断主谓宾的顺序啊,我觉得非常迷惑。谓语前有宾语或者谓语后有主语不也应false嘛,我这么写的只过了9%
点赞 回复 分享
发布于 2022-08-27 17:30 江苏
DNA 那道题不能直接统计 str1 和 str2 不相同处 str1 中 A 和 T 出现次数的最大值吗? 只对了 9%,还是没想通 ``` N = len(str1) status = {"A": 0, "T": 0} for i in range(N):     if str1[i] != str2[i]:         status[str1[i]] += 1          A_num = status["A"] T_num = status["T"] maximum = A_num if T_num < A_num else T_num print(maximum) ```
点赞 回复 分享
发布于 2022-08-28 13:33 北京
有木有考过技术综合H卷的呀 就是两道编程题吗
点赞 回复 分享
发布于 2022-09-08 16:23 湖南
同学同花顺尝试一下吗,面试简单不造火箭,我帖子有内推
点赞 回复 分享
发布于 2022-09-17 00:47 浙江

相关推荐

我已成为0offer的糕手:别惯着,胆子都是练出来的,这里认怂了,那以后被裁应届被拖工资还敢抗争?
点赞 评论 收藏
分享
1 9 评论
分享
牛客网
牛客企业服务