网易笔试题(2021.08.08)
校招的笔试题通常是4道编程题,时间为2个小时,每题25分。
2021秋招笔试题总结如下,包含问题和代码实现。
题1:查找关键词
查找关键词(单词在文章中出现频率>1%)
输入:n行每行一个单词;
输出:关键词个数
解析:这个很简单,用python的话只需要用dict统计出每个单词的个数然后计算出频率大于1%的单词,保存输出。用dict统计数字代码如下:
d[key] = d.get(key, 0) + 1 # d是字典类型的变量
题2:出模拟题
某题库中中三种难度的题:“简单题”,“中等题”和“困难题”。假设现在有E道简单题,M道中等题以及H道困难题,同时还有EM道简单或中等题,MH道中等或困难题(也就是说既可以划分到中等难度也可以分到困难难度)。出模拟题要求:包含三道题目,简单、中等、困难各一道。请问最多能出多少组题?
输入:5个整数 E、 EM、 M、 MH、 H的个数 (其中0 <= E、 EM、 M、 MH、 H<=10^18)
输出:多少组题
不知道具体应该怎么计算~
题3:牛牛铺地毯
牛牛想要给2 * n的地面铺上地毯,目前有两种地毯,1 * 2和2 * 3,地毯可以旋转,问铺可以铺满整个地面的方案数(两种地毯无数量限制,铺地毯不能有重叠,结果模上10007)
大致看一下题,感觉应该是个动态规划的问题,凡是经过动态规划训练的同学都会觉得这个题不难,如果还不是很了解动归的同学可以先看我的系列文章动态规划三部曲。这道题是一维的动态规划问题,dp数组含义如下:dp[i],当n = i时的方案数。
# 边界值
dp[0] = 1
dp[1] = 1
dp[2] = 2
# 递推公式
dp[n] = dp[n - 1] + dp[n - 2] + dp[n - 3] (n >= 3)
题4:教授的互相认可
一群教授,如果教授A认可教授B,而教授B认可教授C,那么认为教授A也认可教授C。给出教授们之间的认可关系,输出有多少对教授互相认可。
输入:n个教授,M个认可关系
输出:互相认可的教授对数
不知道具体怎么计算
总的来说,除了第一题像是个送分题,其他题都是有一定难度的,第二题和第四题当时真的是不知道怎么做,等之后上传答案。