华为(通用软件)面经

一面 9.9 50min

  • 自我介绍
  • 项目中解决过最棘手的问题
  • c++多态是怎么实现的
  • 子类析构的顺序
  • new/delete/malloc/free
  • 机考复盘:连通区域的个数
  • 手撕代码:后缀表达式转换为中缀,输出结果
    用一个栈,数字直接压栈,如果是+-/,则将最上面的两个数字弹出,进行计算,再将结果压入,最后输出结果。
    /

    后缀表达式计算
    中缀表达式 4 + 13 / 5
    后缀表达式 4 13 5 / +
    后缀表达式的用途:计算机在计算中缀表达式时候通常都把它转化成后缀表达式来计算
    根据逆波兰表示法,求表达式的值。
    有效的运算符包括 +, -, , / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。
    说明:
    整数除法只保留整数部分。
    给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。
    示例 1:
    输入: ["2", "1", "+", "3", "
    "]
    输出: 9
    解释: ((2 + 1) * 3) = 9
    示例 2:
    输入: ["4", "13", "5", "/", "+"]
    输出: 6
    解释: (4 + (13 / 5)) = 6
  • /
    #include<bits/stdc++.h>
    using namespace std;
    int main()
    {
       stack<int> s;
       string c;
       int res;
       while (cin>>c && c!="end")
       {
           if (c == "+")
           {
               int a = s.top();
               s.pop();
               int b = s.top();
               s.pop();
               res = a + b;
               s.push(res);
           }
           else if (c == "-")
           {
               int a = s.top();
               s.pop();
               int b = s.top();
               s.pop();
               res = b - a;
               s.push(res);
           }
           else if (c == "*")
           {
               int a = s.top();
               s.pop();
               int b = s.top();
               s.pop();
               res = a * b;
               s.push(res);
           }
           else if (c == "/")
           {
               int a = s.top();
               s.pop();
               int b = s.top();
               s.pop();
               res = (int)(b / a);
               s.push(res);
           }
           else
           {
               int x= atoi(c.c_str());
               s.push(x);
           }
       }
       if (!s.empty()) cout << s.top();
       system("pause");
       return 0;
    }

二面 9.9 28min

  • 项目中关于软件开发的技术

  • 光学工程专业。。。MFC是自学吗?

  • 聊天服务器是自己写着玩的?

  • 非阻塞IO和IO复用都用到了吗?IO复用怎么理解的?复用的是谁?谁被复用了?

  • 服务端/客户端的线程有几个,分别是什么?

  • 手撕代码:配对的括号

    int longest(string s)
    {
      stack<char> st;
      int count = 0;
      int maxx=0;
      for (int i = 0; i < s.size(); ++i)
      {
    
              if (s[i] == '(')
                  st.push(s[i]);
              else if (s[i] == ')')
              {
                  if (!st.empty() && st.top() == '(')
                  {
                      count += 2;
                      st.pop();
                  }
                  if(st.empty())
                  {
                      maxx=maxx<count?count:maxx;
                      count=0;
                      continue;
                  }
              }
      }
      //if (st.empty()) return 0; 
      return maxx;
    }
    int main()
    {
      string s;
      cin >> s;
      cout << longest(s);
      system("pause");
      return 0;
    }

主管面 9.9 25min

  • 自我介绍
  • 研究方向偏软还是硬?
  • 考研还是保研?当时的选项有几个?为什么选天大?
  • 介绍项目中主要负责的事情
    接下来聊项目相关
  • 软硬都有,硬件部分怎么完成的?
    (突然发现,面试官的总结能力特别强......)
  • 项目背景是什么?为什么要设计这样的仪器?
  • 非科班加入软件行业,怎么储备知识的?
  • 工作地点选择
  • 专利是第几发明人?
  • 关于本科去武汉实习,有什么收获?
    (emmm...旅游玩耍很开心)
  • 父母是做什么的?是独生女吗?对你工作地点有要求吗?
    (好像人口调查...)
  • 对华为有了解吗?了解到什么程度?
  • 对加班的看法
    其实我真心觉得华为给应届生提供了足够广阔的平台,足够你成长。
  • 之后转java可以吗
  • 除了华为,还考虑过别的公司吗?
  • 薪酬方面
    (够花就行 哈哈)
  • 有什么想问的

下午三点开始,到晚上七点多,三面一口气结束,整个人像掏空了一样,还是很累的。
越努力越幸运。

#面经##校招##华为##C++工程师#
全部评论
老铁,是投哪个部门的 ?
点赞 回复 分享
发布于 2020-09-20 16:42
IO复用怎么理解的?复用的是谁?谁被复用了?是讲select,poll,epoll?老哥怎么讲的呀教教我
点赞 回复 分享
发布于 2020-09-20 21:58
诶,本科生和研究生问的内容是不是差别很大啊,你的面经我看了好慌
点赞 回复 分享
发布于 2020-09-21 19:55
哇天大师兄😃😃第一次在牛客注意到我天的师兄,还是非科班的,我是机械院的,也在看c++,师兄加油,你是我的榜样😄顺便别忘了继续分享面经呀
点赞 回复 分享
发布于 2020-09-22 00:16
错了错了,是天大师姐😂更稀有了,师姐更冲冲冲!
点赞 回复 分享
发布于 2020-09-22 00:18

相关推荐

评论
3
38
分享
牛客网
牛客企业服务