📜  高盛面试经历|第 36 组(有经验者)

📅  最后修改于: 2021-09-23 05:37:56             🧑  作者: Mango

我在 11 月 17 日采访了 Goldmanc sachs。这个过程非常缓慢,因为在我的情况下,第一轮于 9 月 17 日开始,最后一轮于 11 月 17 日结束。

第 1 轮:首先是 HackerRank 测试。两个编码问题,第一个简单,第二个中等到困难级别。

注意:我不记得问题的确切措辞。

1。)给定一个字符串和脉冲串长度,输出该字符串,使得在相同字符串相邻的字符计数是小于突发长度。

例子:

输入: abbcaaaccd , 3

输出:abd

2.) 给定一个不同整数的数组,输出长度为 3 的子序列的数量,无论是递增还是递减。

提示:准备动态规划,因为几乎每次第二个问题都是关于 DP 的。

第 2 轮:CoderPad

这里问了两个问题:

  1. 一个机器人只能往四个方向移动,UP(U),DOWN(D),LEFT(L),RIGHT(R)。给定一个由移动指令组成的字符串,执行指令后输出机器人的坐标。机器人的初始位置在原点(0,0)。
  2. 给定一个整数数组和一个总和,输出其加法等于给定总和的对数。

提示:在 CoderPad 回合中,首先与面试官讨论您的算法。面试官除了你写专业级的代码。面试官还会要求您编写所有可能的测试用例,尤其是角落测试用例,您的代码应该通过它。

第三轮:视频会议

在这一轮中,我们询问了许多技术问题,以检查对 C++ 语言的深入了解。

我记得的一些问题是:

  1. 自我介绍
  2. 什么是 Virtual 关键字,vtable 的工作原理,virtual 析构函数。
  3. C++、C++14 中的异常处理(如果你声称了解 C++14)
  4. 给出了许多与运行时多态性相关的场景,并询问输出将是什么以及为什么
  5. STL 容器 Map、Set、unordered_map。
  6. C++中map和unordered_map的区别,它们的实现细节。
  7. map、set、unordered_map 的现实世界使用。
  8. STL 容器的线程安全。
  9. 智能指针,如 unique_ptr、shared_ptr、weak_ptr。用例和它们之间的差异。
  10. 算法题:给定一个整数矩阵,找出和最大的子矩阵。

经过这一轮和一个月的等待,我被要求在 GS 班加罗尔进行面对面的讨论。以下所有回合均在 GS 班加罗尔和一天内发生。每轮有两名面试官。

第 4 轮:面对面

再次有很多关于 C++ 的问题:

  1. 虚拟机制
  2. 纯虚函数使用
  3. 纯虚函数vs 虚函数
  4. 输出预测:给定一些 C++ 代码,将输出什么以及为什么。(我不记得确切的问题,但一种情况是运行时多态性,第二种情况是从函数返回的本地引用)
  5. 算法题
    • 给定一个整数数组,找到最大的子数组。输出带有开始结束索引的总和。
    • 给定一个填充了 X 和 0(零)的矩阵。计算所有标有 X 的单元格与最近的 0 的距离。四个相邻单元格(顶部、底部、右侧、左侧)的距离将为 1。例如输入:XXX
      X 0 X
      XXX

      输出:
      2 1 2
      1 0 1
      2 1 2

第 5 轮

C++ 问题:

  1. 实现赋值运算符重载,复制构造函数。
  2. 不同类型的演员表以及它们之间的区别
  3. Up Cast 和 Down cast,它们为什么以及如何工作。
  4. 钻石问题以及如何解决。
  5. 虚拟继承如何在内部工作。
  6. 算法题:
    • 给定一个只有三个可能数字 0、1、2 的链表,对列表进行排序。
    • 给定一个已排序但重复的整数数组,找出给定数字出现的次数。

第 6 轮

设计问题:设计一个手机通讯录,即联系人列表,用来保存手机号码、邮箱等信息。我们可以在手机上进行的所有操作,如按姓名、号码搜索等。

算法题:给定两个字符串s1、s2。输出可以合并这两个字符串的所有方式,同时保持字符顺序与它们在 s1、s2 中的顺序相同。设计一个递归算法。

示例:s1:ab,s2:cd

输出 :

A B C D

acbd

数据库

驾驶室

卡布

数据表

所以,伙计们,希望你会发现它对你的面试准备有用。祝你好运!!!