📜  Synopsys 面试经历 – 研发 2 工程师

📅  最后修改于: 2022-05-13 01:58:21.800000             🧑  作者: Mango

Synopsys 面试经历 – 研发 2 工程师

我在 Synopsys Noida 接受了研发 2 工程师职位的面试。

第一:第一轮是电话。面试官首先要求在当前公司工作。

然后他问我一些与 C++ 相关的问题。

  • 什么是虚拟析构函数?
  • 我们可以使用带有 const 限定符的 static 关键字吗?
  • 我们可以在 C++ 中更改 const 变量的值吗?
  • 什么是常数参考?
  • 按引用调用与按值调用之间的区别?
  • https://www.geeksforgeeks.org/design-a-stack-that-supports-getmin-in-o1-time-and-o1-extra-space/

在这个电话之后,我被要求在他们的诺伊达办公室进行 F2F 面试。

第2轮:这部分的问题来自数据结构和C++。代码应该整洁干净,包括所有基本条件。

  • 使用 C++ 的特性设计一个 Array 类。
  • 反转一个链表。
  • https://www.geeksforgeeks.org/minimum-steps-reach-end-array-constraints/
  • 平衡二叉树中的节点数。
  • 如何使对象不可复制。
  • 使用虚拟指针和虚拟表的概念在 C++ 中描述整个虚拟关键字实现。
  • 代码中虚拟关键字位置变化的问题。
  • 函数重载 vs函数重载
  • 深拷贝与浅拷贝。
  • 迭代与递归方法。
  • 使用迭代和递归方法编写斐波那契程序。
  • C++ 中的引用是什么?
  • 编写代码以确定给定的二叉树是否为 BST。
  • 讨论 BFS 和 DFS。

第三轮

  • 给我一个带有电阻器,电感器和电容器的电路图。现在我需要设计一个 C++ 类来使用 C++ 特性导出整个电路的功能并描述我如何使用它们。这是一个大约 45 分钟的长时间讨论。
  • 复制带有下一个和具有各种变化的随机指针的链表。

第 4 轮:这是与招聘经理的管理轮。它从我的介绍和许多行为问题开始。

  • 查找树中两个给定节点之间的所有节点。
  • 给定两个数组,确定两个数组中有多少元素相等。
  • 当一个对象在 C++ 中创建时,所有的东西都被调用了。(如构造函数、复制构造函数、赋值运算符)
  • 所有类型的访问说明符,它们之间存在差异。
  • 描述运算符重载。
  • 编写复制构造函数和赋值运算符的语法。

一天 3 次 F2F 后,他们在 15 天后打电话给我,要求再进行 1 次 F2F。

第5轮:这一轮是与队长。面试再次从我在前雇主的最后一份工作开始。

  • 讨论简历中提到的项目。
  • 使用 BFS 进行写级顺序遍历并讨论时间复杂度。
  • 编写用于遍历具有时间复杂度讨论的无向图的代码。
  • 邻接表与邻接矩阵。
  • 如果其他数字重复两次,则在数组中查找不重复的数字。
  • Java中 '==' 和 '.equals()' 之间的区别。
  • Java中函数覆盖和重载的内部实现。

这一轮结束后,我接到了班加罗尔队队长的电话。

第六轮:再次讨论我在上一家公司的工作。

  • 定义一个常数向量。
  • 什么是复制构造函数
  • 一个空类的大小是多少,为什么会这样?
  • 如何使用访问说明符。
  • 如何在 C++ 中动态分配二维数组。
  • malloc 和 new 的区别。
  • 什么是常数函数?
  • 我们可以修改“指向变量的常量指针”吗
  • 编写代码找出给定数字是否为 2 的幂?
  • 编写代码以查找数组中的第 K 个最大元素。

在所有这些回合之后,人力资源部给我发邮件说你被选中并通过电话协商薪资讨论。

祝大家一切顺利。我建议对 Synopsys 有足够的信心并精通 C++。