📜  SAP Labs 面试经验 | FTE 校园 2020(虚拟)

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

SAP Labs 面试经验 | FTE 校园 2020(虚拟)

SAP 实验室来到我们的校园,面试实际上是由于 COVID-19 的情况而进行的,总共进行了六轮,他们所看到的只是我们如何解决问题。

第1轮(在线测试):本轮时间为1小时,考试在Hackerrank进行。有三个部分。

第 1 部分(5 个 MCQ):

  1. 分析时间复杂度。
  2. 变量的定义。
  3. 正确初始化数组。
  4. 分布式系统的特点。
  5. c中的malloc函数在什么时候分配内存?

第 2 部分(5 个 MCQ):

  1. JavaScript函数的输出
  2. 从前序和后序遍历中查找中序遍历
  3. 消息队列的定义
  4. C++ 构造函数初始化
  5. 给定 R(A, B, CD) 和函数依赖是 A->B 和 C->D 。将 R 分解为两个不同的模式 R1(A, B) 和 R2(C, D) 是?

第 3 部分(2 个编码问题):

  • 给定一个整数 k 和一个整数列表,计算列表中不同的有效整数对 (a,b) 的数量,其中 a+k=b。两个整数对 (a, b) 和 (c, d)如果 (a,b) 的至少一个元素不属于 c,则认为是不同的。
Input : n=4 ,k=1
        Numbers-[1,1,1,2]
Output: 1

我使用了 HashSet 来避免重复,并检查哈希中的元素加 k 是否存在于 HashSet 中,如果存在,那么我增加了计数并最后返回了计数以及所有通过的测试用例。

  • 给定一个整数数组,执行一些 k 次操作。每个操作都包括从数组中删除一个元素并将其除以 2 并将该结果的上限插入回数组中。最小化最终数组中元素的总和。
Input : nums[10,20,7] k=4 
        Pick | pick/2 | ceiling | Result
        Initial array             [10,20,7]
        7      3.5      4         [10,20,4]
        10     5        5         [5 ,20, 4]
        20     10       10        [5 ,10, 4]
        10     5        5         [5,5,4]
The sum of the final array is 5+5+4=14 and the sum is minimal.
Output: 14

我已经构造了 maxheap 以每次获取最大元素并从堆中删除该最大元素并除以 2 并将元素添加到堆中,重复相同的操作直到 k 这样做我在末尾找到了最小元素第 k 次迭代。

ROUND 2(Code Pairing):本轮时间为30分钟,考试在Hackerrank codepair上进行。我问了 1 个编码问题和一个 SQL 查询。他说他看过我的hackerrank、Github、leetcode profile,以及我在简历中提到的项目,印象深刻。由于我们有 30 分钟的时间,我们没有进行介绍,而是继续解决问题。

编码问题:给定一个整数数组,其大小为 n ,我需要通过将数组元素加一来更改任何 n-1 个字符,在一次迭代中重复执行此操作,最后,所有数组元素应该具有相同的价值。返回实现此目标所需的迭代次数。

Initial array: [2, 3, 5, 5, 4]

我最初发现了一种模式,就像我可以通过将所有数组元素增加一来改变所有数组元素一样,除了该数组中的最大元素。我已经对此进行了编码,并且一些测试用例没有通过。但他对我的方法感到满意,并要求继续下一个问题。

SQL查询:给定一个国家表和那个国家的人口,你必须打印国家名称和人口,这样人口应该是偶数,国家名称应该按升序打印,国家应该大写.

我已经解决了这个问题并选择了下一轮。

ROUND 3 (Tech Round):本轮时间为 30 分钟,考试在 Microsoft Team 举行

  1. 抽象类的实现:这里是一个 Dog 类,它有两个方法 speak 打印 bow bow 和 walk 打印 walk。有一个 Cat 类,它有两种方法:speak 打印 meow 和 walk 打印walking。有一个消费者类,它有一个 Act 方法,它应该根据传递给吃的对象调用 speak 和 walk 方法。换句话说,如果你传递 Dog 它应该调用 dogs 方法,如果你传递一个 cat,它应该调用 cat 方法。您设计解决方案的方法是什么这是问题,我希望使用抽象类来做到这一点,后续问题是接口和抽象类之间的区别。
  2. 设计模式:他问了我知道的设计模式,我已经说过单例、工厂设计模式和链责任定理,然后他问我在哪个实时场景中你会使用单例和工厂。我提到了一些,他对此表示满意。
  3. SQL查询:某公司将其员工的信息存储在EMPLOYEE表中。编写一个查询以打印 EMPLOYEE 表中工资超过 500 美元的所有员工的姓名和工资。按员工姓名中最后三个字符的升序对结果进行排序。如果两个或多个员工的姓名以相同的三个字符结尾,则按薪水的降序对他们进行排序。即使有两个或更多的员工获得相同的薪水,也可以按 ID 升序对这些员工进行排序。
Sample Input:
            EMPLOYEEID NAME    SALARY
            1          Candice 4685
            2          Juliana 2253
            3          Scarlet 2350
            4          Illeana 1151

Sample Output:
            Juliana 2253
            Ileana 1151
            Candice 4685
            Scarlet 2350

他问我是否有任何问题,我问他 SAP 中更具挑战性和有趣的项目,他回答了。下午 3 点,我收到邮件说我已经和其他三个学生一起通过了这一轮,下一轮是管理轮 1。

第 4 轮(管理第 1 轮):这一轮的持续时间为 15 分钟,考试在 MS 团队中进行。两位经理在这一轮采访了我,我问了这样的问题,

  1. 那天过得怎么样?
  2. 整体面试体验如何?
  3. 第一轮感觉如何
  4. 这是你的第一次面试吗
  5. 你为什么想在 SAP 工作
  6. 我做过的有趣的项目,我详细解释了
  7. 您喜欢与哪个角色一起工作(开发人员或测试人员或客户服务)
  8. 为什么需要对软件环境进行升级
  9. 您如何管理服务器故障
  10. 搬迁到班加罗尔可以吗
  11. 你的大学成绩低于你的学校成绩,从农村搬到城市是你大学成绩下降的原因。
  12. 如果你被选中,你会在第一天加入公司还是需要一些时间?

下午 5 点 20 分,我收到邮件说下一轮管理时间是下午 5 点 50 分到 6 点 10 分

第 5 轮(管理第 2 轮):这一轮的持续时间为 15 分钟,考试在 MS 团队中进行。这是一个正常的讨论回合,开始于我的简要介绍。

  1. 那天过得怎么样?
  2. 两个优势和两个需要改进的领域,以及你是如何做到这一点的。
  3. 您在担任领导职务期间遇到的问题。
  4. 你多久来一次你的家乡
  5. 宿舍生活中的美好一天是什么,为什么?宿舍生活中的糟糕一天是什么?
  6. 除了学术,你空闲时间会做什么
  7. 你为什么喜欢在 SAP 工作

晚上 7 点,我被要求参加最后的 hr 回合。

第6轮:(HR决赛):本轮时间为20分钟,考试在MS团队中进行。

  1. 告诉我我在简历中提到的你的成就。
  2. 我在 COVID-19 情况下面临的困难。
  3. 在线课程进行得如何?
  4. 兴趣范围。

然后我被告知我将在第二天或两天后得到结果。