百度c++后端秋招半上岸面经

  • 先说说我做的准备吧,小林coding看了一遍,leetcode524题(包括剑指、代码随想录),项目就一个跟着b站sylar做的webserver,基本都是在一个学期内做的。

百度一面(电话面):

时间有点久不太记得起来了,都是基础八股问题。

先是自我介绍,然后问问项目,stl的八股,tcp四次挥手,多线程什么的。

百度二面(视频面):

手撕的是三个问题:

  • 实现一个string类的构造函数,左值拷贝构造函数,右值移动构造函数,析构函数。
class String {public:String(int size = 10) {m_val = (char*)malloc(size);m_size = size;}String(String& a) {m_size = a.getSize();free(m_val);m_val = (char*)malloc(m_size);memcpy(m_val, a.getVal(), m_size);}String(String&& a) {m_val = a.getVal();m_size = a.getSize():a.setVal(nullptr);a.setSize(0);}~String() {free(m_val);}void setVal(char* a) {m_val = a;}void setSize(int a) {m_size = a;}char* getVal() {return m_val;}int getSize() {return m_size;}private:char* m_val;int m_size;
};
  • 写个单例,问是否线程安全
1template
class singleton {
public:T getThis() {static T a;return a;}
};

  • 写个二叉树的右视图
struct TreeNode {int val;TreeNode* left;TreeNode* right;
};vector rightTree(TreeNode* root) {vector result;if(root == nullptr) {return result;}queue qu;qu.push(root);while(!qu.empty()) {size_t s = qu.size();for(size_t i = 0; i < s; i++) {TreeNode* now_node = qu.front();qu.pop();if(now_node->left != nullptr) {qu.push(now_node->left);}if(now_node->right != nullptr) {qu.push(now_node->right);}if(i == s - 1) {result.push_back(now_node->val);}}}return result;
}

二面以情景题为主,主要记得的两个问题是:

  • 共享内存中设计一个map怎么做
  • 有个很大的词库,几亿几十亿的数据量,然后给一个词判断是否在这个库中出现过。(位图)

手撕都是秒写出,情景题都答得不太理想,确实是没有遇到过也没想过这种问题。

百度三面(视频面):

第三面就是主管面了,没问我技术相关的问题,就是为什么转专业,平时怎么自学这种。

        面试官都很nice!会认真分析我提出方案的优缺点,有些问题还会给我提示,甚至直接教给我哈哈哈。

       主管评价基础不行,但是看我很喜欢写代码,所以给我个实习offer,运气选手了属于是,先去实习一个学期,转正通过就是正式offer啦!

       今年形势这么严峻,投了二十多家,就两家进面了,准备也确实不够充分,基本就打算去百度实习转正了。

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部