赞
踩
软开C++,机考满分,技术面面评两个A,时间线如下:
01.04 笔试链接
01.10 笔试(2.5h)
01.11 综测
01.13 资格面(HR面)
01.17 技术一面
01.19 技术二面
01.20 主管面
01.22 提Offer及审批
01.26 Offer邮件
首行输入一段由英文单词word
和标点
构成的语句str
,接下来一行为一个英文单词前缀pre
输出符合要求的单词序列或单词前缀。存在多个时,单词之间以单个空格分割
要求:
1.输出的单词序列不能有重复单词,且只能是英文单词,不能有标点符号
2.按字典序输出联想到的单词序列,如果联想不到,请输出用户输入的单词前缀。
思路:
1.定义一个字符串数组,遍历单词语句,通过空格之间的字母记录单词
2.set集合去重,拷贝到新数组排序,保证输出按字典序。
3.遍历单词数组,查找比前缀pre
长并且等长字母和pre
一样的单词,输出即可。
输入描述:第1行输入两个整数,学生人数n和科目数量m。0 < n < 100,0 < m < 10
第2行输入m个科目名称,彼此之间用空格隔开,科目名称只由英文字母构成,单个长度不超过10个字符。科目的出现顺字和后续输入的学生成绩一一对应。不会出现重复的科目名称。
第3行开始的行,每行包含一个学生的姓名和该生m个科目的成绩空格隔开),学生不会重名。
学生姓名只由英文字母构成,长度不超过10个字符。成绩是0~100的整数,依次对应第2行中输入的科目。
第n+2行,输入用作排名的科目名称。
若科目不存在,则按总分进行排序。
输出描述:输出一行,按成绩排序后的学生名字,空格隔开。成绩相同的按照学生姓名字典顺序排序。
思路:
1.定义一个无序哈希表,将学生姓名和他的m门科目成绩映射起来 std::unordered_map<std::string, std::vector<int>> map;
2.去科目表里面找是否有输入的科目,有的话记录下标方便排序,没有就按总分排序。if(subjects[i] == k) {idx = i; break;}
3.捕获外部变量的lambda表达式排序,判断成绩是否相同(作差和0比较),相同按字典序排,不同按照升序排,排好了输出姓名。
小扇和小船今天又玩起来了数字游戏,小船给小扇一个正整数 n,小扇需要找到一个比 n 大的数字 m,使得 m 和 n 对应的二进制中 1 的个数要相同,如:4 对应二进制 1008 对应二进制 1000
其中 1 的个数都为 1 个。现在求 m 的最小值。
输入一个正整数 n,输出一个正整数 m。
思路:
1.将n二进制中从右往左找到的第一组"01"子串变为”10“,这样可以保证在不新增1且差距最小的情况下,找到最小的m。找不到“01”,在前面拼一个0。
2.找最优,将"01"变为”10“后的子串,右边部分的1全部集中放到最右边。
项目:
讲一下网络通信框架的原理及实现
c++:
1.说一下继承和多态
2.说一下你常用的STL容器
3.说说vector和list的区别
八股:
TCP和UDP的区别及其应用
算法:
1.快排和归并排序,常见排序算法的应用场景
2.LC394字符串解码手撕,写了递归问其它实现方式(栈)
回顾笔试题的思路
项目:
学校导师带着做的还是自学的,独立完成的吗
c++:
C++面向对象的三大特性
C++的多态what, why
重载和重写(覆盖)的区别
你常用的STL容器
半圆形继承(多继承),ABC是半圆形继承的关系并且AB都有成员函数D,C成员调用D时优先访问谁的
八股:
1.7层网络模型,每层举个协议的例子
2.你常用的同步机制,临界区如何用的
3.三次握手过程
4.进程和线程的区别
算法:
LC853车队、分析时间复杂度
没有技术问题,聊了一些其它的,例如薪资待遇、加班的接受度、选择成都的原因、是否有对象和是否独生子等。
因为主管聊了一点他年轻时的北漂奋斗史,时间超过了半小时。
(资格面和主管面类似,不赘述了)
1.部门和我对接的接口人很负责,前期笔试和综测提供了很多资料,面试结束后的面评以及后续的offer审批也都会反馈给我。
2.主管不是那种很严肃和有架子的人,给人印象是比较和善,说话也比较风趣。
3.整体的流程还挺迅速的,没有拖很久不发offer。
笔试:前期多花点时间准备笔试,建议多刷题,特别是题库里的题,23年年底改为以C卷为主。
技术面:语言和八股尽量熟悉简历上写的东西,手撕尽量写出来,写出手撕题更容易过。
HR面和主管面:正常聊别紧张,面多了会发现自己是有语言天赋和说话技巧在的(要自信)。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。