700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 届BiliBili校招 数据分析/后端开发 笔试题记录

届BiliBili校招 数据分析/后端开发 笔试题记录

时间:2023-02-09 05:46:37

相关推荐

届BiliBili校招 数据分析/后端开发 笔试题记录

文章目录

1. 背景2. 题型3. 选择题范围3.1 数据结构3.2 计算机网络3.3 操作系统3.4 计算机组成3.5 其他4. 算法题4.1 第一题4.2 第二题4.3 第三题5. 往年试题

1. 背景

最近做了BiliBili届校招数据分析岗的笔试题,和后端开发是同一套题,之前在找相关资料的时候没有发现数据分析笔试题型的信息,于是做完以后发个帖出来给大家参考。

2. 题型

时间一共是105分钟,30道选择题,共60分,3道算法题,共60分,加起来120分。

本来给算法题每题分了20分钟,每道选择题大概1-2分钟,最后做完选择题还剩下70分钟,今年算法题非常简单,提前25分钟做完了,感觉选择题是重点。

3. 选择题范围

选择题基本上是计算机考研408的内容,数据结构、计算机网络、计算机组成、操作系统这些题目乱序地来。难度中等,如果能把408的书多看几遍应该问题就不大。

能回忆起来的内容大概是这些:

3.1 数据结构

树的遍历,根据前序中序推后序之类的,2题排序算法,各种排序的复杂度,排序方式等等,3-4题逻辑结构特点,判断是不是线性结构之类的,2题内存大小,64位Linux下,char a[10],char *b = (char *)malloc(10* sizeof(char)),sizeof(a)和sizeof(b),大小是多少,答案是10和8,1题

3.2 计算机网络

TCP滑动窗口协议,计算,1题OSI分层结构,数据链路层的功能等等,1-2题CRC校验码,计算,1题网络协议,ping会用到哪些协议等等,2-3题

3.3 操作系统

内存泄露,在哪种情况下会导致内存泄露,1题Linux命令,创建文件命令,1题

3.4 计算机组成

进制转换,8进制和2进制转10进制,比较大小,2题

3.5 其他

软件工程,设计模式,考的应该是装饰模式的特点,1题数据库,SQL语句,1-2题网络安全,CSRF攻击如何防护,1题

4. 算法题

3道算法题都比较简单,在牛客网上看到有人发统计问卷,70%以上都AK了。

4.1 第一题

算24点,给4个数字,判断能否通过四则运算算出24。

题目是类似于leetcode的那种,在给定的函数里面写代码,只要返回值,不需要输出。

这题数字比较少,直接暴力就能算。

double calculate(double x, double y, int countFlag){if (countFlag == 0) {return x + y;} else if (countFlag == 1) {return x - y;} else if (countFlag == 2) {return x * y;} else if (countFlag == 3) {return x / y;}return 0;}bool method(int * arr, int length){double ans;for (size_t i = 0; i < 4; i++) {ans = calculate(arr[0], arr[1], i);for (size_t j = 0; j < 4; j++) {ans = calculate(ans, arr[2], j);for (size_t k = 0; k < 4; k++) {ans = calculate(ans, arr[3], k);if (ans == 24) {return true;}}}}return false;}

4.2 第二题

括号匹配,({[,三种括号,要求能依次一一配对。

比如([])输出true[(])输出false

vector模拟栈输入输出即可。

bool method(string s){string s;vector<char> vt;for (size_t i = 0; i < s.size(); i++) {if (s[i] == '(') {vt.push_back(s[i]);} else if (s[i] == '{') {vt.push_back(s[i]);} else if (s[i] == '[') {vt.push_back(s[i]);} else if (s[i] == ')') {if (vt.size() > 0 && vt.back() == '(') {vt.pop_back();} else {return false;}} else if (s[i] == '}') {if (vt.size() > 0 && vt.back() == '{') {vt.pop_back();} else {return false;}} else if (s[i] == ']') {if (vt.size() > 0 && vt.back() == '[') {vt.pop_back();} else {return false;}}}if (vt.size() == 0) {return true;}}

4.3 第三题

假的背包问题,现在我们有1024元,购买N元东西以后,用64元,16元,4元和1元的硬币找零,最少能找回几个硬币。

本来以为要用DP,后来发现直接贪心就可以了。

int method(int N){int left = 1024;int count64 = 0, count16 = 0, count4 = 0, count1 = 0;left -= N;while (left != 0) {if (left >= 64) {left -= 64;count64++;} else if (left >= 16) {left -= 16;count16++;} else if (left >= 4) {left -= 4;count4++;} else {left -= 1;count1++;}}int ans = count64 + count16 + count4 + count1;return ans;}

5. 往年试题

哔哩哔哩校园招聘后端笔试卷(二)

哔哩哔哩校园招聘后端笔试卷(一)

联系邮箱:curren_wong@

CSDN:/qq_41729780

知乎:/c_1225417532351741952

公众号复杂网络与机器学习

欢迎关注/转载,有问题欢迎通过邮箱交流。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。