6.3号 华为校招实习笔试题

第一题:就是一个ip地址转十六进制
输入:192.168.1.1
输出:C0.A8.1.1
思路:将输入的字符串以‘.’ 分割,转换为对应的十六进制数,(注意第一位不能为0,一个小坑)。就转化就完事。。

#include<bits/stdc++.h>

using namespace std;
char mp[16] = { '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
string I26(string x) {
	int k = 0;
	for (int i = 0; i < x.size(); i++) {
		k = (x[i] - '0') + k * 10;
	}
	int first = k / 16;
	int second = k % 16;
	string res;
	if(first > 0)
		res.push_back(mp[first]);
	res.push_back(mp[second]);
	return res;
}

int main() {
	string ip;
	cin >> ip;
	string res;
	string temp;
	int start = 0, j = 0;
	while (j < ip.size()) {
		if (ip[j] == '.') {
			temp = ip.substr(start, j - start);
			temp = I26(temp);
			res += temp + ".";
			start = j + 1;
		}
		j++;
	}
	temp = ip.substr(start, j - start);
	temp = I26(temp);
	res += temp;

	for (int i = 0; i < res.size(); i++)
	{
		cout << res[i];
	}
	//system("pause");
	return 0;
}

第二题:两个表合并。
这题就是来恶心人,什么字段映射合并,就是来搞人心态,尤其是用c++的,这输入就能把你恶心死。都是以字符串形式输入,还不确定有多少列!!应该是python比较好解决。直接放弃。。。。
输入:
partA.csv:
NO, Field01, Field02, Field03
01, 02, 03, 04
0x, 0x, 0x, 0x

partB.csv:
NO, Field01, Header02, Header04
11, 12, 13, 14
1y, 1y, 1y, 1y

mergeconfig.csv :
partA, partB
Field02, Header02
//EOF(以此为输入结束)
输出:
partAB.csv:
NO, Field01, Field02, Field03, Header04
01, 02, 03, 04,
0x, 0x, 0x, 0x,
11, 12, 13, , 14
1y, 1y, 1y, , 1y

第三题:两个小朋友猜一个目标数,从1开始, 可以+1 或者 +2,直到猜到为之。
输入:20  (大于10的整数,注意要判断输入是否合法,要不就90%)
输出:[10946,5473](输出一定要这种形式,不知道为啥非得整成这样。。)(输出为一个数组,第一个数表示一共有多少种不同的猜法,第二个表示先猜的小朋友获胜的种数,如果输入不合法就“返回”(应该是输出,题目给的误导人)一个空数组)
思路:这题是 一道博弈 问题,就动态规划解决(我开始用的递归,只能36.36%),二维数组或者用2个一维数组也一样。转移方程:每一个小朋友的猜中i 只能是 另一个小朋友猜中i-1或者i-2  。。
#include<bits/stdc++.h>
using namespace std;

int main() {
	int target;
	cin >> target;
    if(target <= 10){
        cout<<"[]";
        return 0;
    }
	unsigned long long count = 0;
	unsigned long long  num = 0;
	vector<vector<unsigned long long>> dp(target +1, vector<unsigned long long>(2, 0));
	dp[1][0] = 1;
	dp[1][1] = 0;
	dp[2][0] = 1;
	dp[2][1] = 1;
	for (int i = 3; i <= target; i++) {
		dp[i][0] = dp[i - 1][1] + dp[i - 2][1];//第一个小朋友猜中
		dp[i][1] = dp[i - 1][0] + dp[i - 2][0];//第二个小朋友猜中
	}


	count = dp[target][0] + dp[target][1]; //总数即为二者之和
	num = dp[target][0];
	cout << "[" << count << "," << num << "]";
	//system("pause");
	return 0;
}




#华为校招实习笔试##华为##笔经##笔试题目##C++工程师#
全部评论
第二题的思路(不确定是否是优解) 1. 先用ArrayList<ArrayList<String>>存储每个文件字符串。 2. partA.csv与partB.csv比较,相同字符串part添加到新字符串,添加"A""B"到新串,添加 .csv。 3. 字段映射:合并A,B字段。进行字段替换,之后去重。 4. 不确定数据怎么处理,直接添加。
点赞 回复 分享
发布于 2020-06-09 16:26
楼主什么时候参加的笔试?
点赞 回复 分享
发布于 2020-06-04 09:46
楼主你好,请问你是什么岗位?开发的话,是Java方向还是C++方向?或者其他语言方向~
点赞 回复 分享
发布于 2020-06-03 21:50
第三题神马?可以描述的具体一点吗?看不懂输出为啥那样
点赞 回复 分享
发布于 2020-06-03 21:32

相关推荐

2025-12-12 19:01
南京航空航天大学 C++
秋招没咋投,准备&nbsp;wxg&nbsp;转正之后摆烂了。结果不堪字节&nbsp;HR&nbsp;的骚扰还是面了一下字节。之前想去字节的时候怎么面都挂。现在想着随便面一下结果三面技术面都意外顺利还有加面。十月中旬字节发了意向,wxg&nbsp;转正结果无响应。十月底字节拉了保温群,wxg&nbsp;口头通过,系统显示考核中。十一月初和字节&nbsp;ld&nbsp;交流之后得知&nbsp;base&nbsp;居然能选海外,甚至能小&nbsp;wlb&nbsp;一下,wxg&nbsp;无响应无人联系。十一月中旬把字节&nbsp;base&nbsp;转到了海外,wxg&nbsp;流程灰了,一问超时忘处理了,过两天又变考核中了。十一月下旬字节换了海外&nbsp;HR&nbsp;对接,问了期望薪资,wxg&nbsp;考核终于显示通过,无&nbsp;HR&nbsp;保温,无其他保温。十一月底给字节报了个天价,想吓吓他们,同时告诉微信字节要开了,微信无响应。同样十一月底字节&nbsp;HR&nbsp;告诉我确实给不到那么高,但是能拿期权补上,问能不能接受。微信无响应。同样十一月底字节&nbsp;HR&nbsp;告知了具体方案,符合预期。&nbsp;微信无响应。十二月上旬催&nbsp;wxg&nbsp;不开我就盲拒了,wxg&nbsp;HR&nbsp;火急火燎的打电话问情况,问期望。我给了一个不算夸张的总包数字,因为今年市场在涨,过了三天还不联系我,我再催,约时间下午打电话,非得在我给出的数字上压下去几万,微信又不差这点,为什么不能满足我,让我没有拒绝的理由呢?一番纠结抗争,求稳还是追求挑战,最终选择接受迎接新的挑战,因为堂吉诃德永远不会停下脚步!回想起来,在&nbsp;wxg&nbsp;谈薪的阶段,我认为并没有给予我一定的重视,即使&nbsp;HR&nbsp;表示我在实习期间的表现和之前的面评都很靠前。也没有感觉到想要争取我,虽然我表示拒了&nbsp;offer&nbsp;之后要给我加面委定&nbsp;t6&nbsp;再涨,但我三个月没面试让我面面委那就是白给,还是算了。有缘再见了我亲爱的&nbsp;wxg,再见了曾经的梦中情厂,再见亲爱的&nbsp;mt,再见亲爱的朋友们。也再见,北京的一切。我想润了。秋招结束,卸载牛客,下一个三年,下一个五年,下一个十年后再来看看。
面试中的大熊猫爱吃薯...:我嫉妒得狗眼通红
点赞 评论 收藏
分享
评论
4
24
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务