📜  Sabre面试经历 | NIT 巴特那 – SDE

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

Sabre面试经历 | NIT 巴特那 – SDE

Sabre现场招聘共180名学员,其中5人入选。该过程共涉及四轮。我将尝试向您介绍我的经验,并为每一轮提供一些提示/建议。

第 1 轮 - 在线测试

简短描述——这一轮包括 40 个 MCQ 和两个编码问题。在此过程中,网络摄像头已打开。

细节 -

MCQ 部分涵盖了计算机科学的所有主要主题(DBMS、操作系统、数据结构和算法、计算机网络)以及来自各个主题的一系列能力问题(BODMAS、排列、距离和时间、复利、数据解释、百分比、损失和利润、时间和天数)。很少有 MCQ 包含预测 C 程序的输出。

编码部分有两个编码问题。第一个问题是 50 分(简单)。第二题是100分(超级简单)。

编码问题 1 语句——给你一个长度为 n 的整数数组。找到数组的值 G。 G 是数组中每个元素的幻数的最大值。对于某些元素 A[i],幻数是 x 的最大素数除数,其中 x 是给定数组中严格小于 A[i] 的元素数。幻数 = 0 {如果 x 为 0},幻数 = 1 {如果 x 为 1}。

Example 1 - 
Input -
A[] = {1,4,5,6}
Output - 5 

Explanation -
magic number for 1 => 1
magic number for 4 => 2
magic number for 5 => 5
magic number for 6 => 3

so g = maximum of all = 5

注意- 语言令人困惑,但问题很容易。

解决方案——对给定的数组进行排序。初始化 g = 1。从第一个索引开始迭代。维护一个变量(LESS=0,因为有0个元素小于最小元素)来存储小于前一个元素(A[i-1])的元素个数。如果当前元素(A[i])等于前一个元素(A[i-1]),则LESS保持不变,否则如果当前元素大于前一个元素,则LESS = i(如果我们在索引4和A[3 ]这不是最好的解决方案,但足以通过所有测试用例。

编码问题 2 语句- 给你一个字符串(句子,可能包含空格)S1 和字符串S2。还有一个字符变量 C,它的值可以是“Y”或“N”。如果 C 的值为 'Y' ,则查找字符串S2 在句子中是否作为完整单词存在。如果 C 的值为 'N' ,则查找字符串S2 是否存在于句子 S1 中(不一定是完整的世界)。

Example 1. 
S1 = “geeksforgeeks is the best” 
S2 = “geeks”
C = “Y”
Output : not present
Explanation : as the value of C is ‘Y’ so S2 should 
be present as a complete word.
S2 is present in S1 but not as a complete word.

Example 2. 
S1 = “geeksforgeeks is the best” 
S2 = “geeks”
C = “N”
Output : present
Explanation : as the value of C is ‘N’
so, S2 should be present and not necessarily
as a complete word. S2 is present in S1. So output is present.

注意– 约束非常小 (|S1|,|S2| <= 50),因此很容易通过。

解决方案– 通过将 S1 的每个索引 (i) 视为起始位置来检查 S2 是否存在于 S1 中。如果 C 是 'Y' 则另外检查 S2 是否是完整字( { i-1 < 0 或 S1[i-1]==' ' } 和 { S1[i+1] == '\0' 或 S1 [i+1]==' ' } )

本轮建议——

  1. 大多数能力问题都很容易破解。不需要额外的准备。但是您可以尝试一些数据解释问题。
  2. 深入研究时间复杂度分析问题。
  3. 认真学习操作系统。
  4. 不要忘记练习 SQL 语法问题。
  5. 您可能会离开或花很少时间在计算机网络上。
  6. 如果你在这一轮中编写未优化的代码会更好。当面试官要求您优化您的解决方案时,它将在下一轮帮助您。

第 2 轮 – 技术面试

描述——在这一轮面试中,面试官让我解释我在上一轮写的两个编码问题的解决方案。他还要求对我的解决方案进行时间复杂度和空间复杂度分析。他问我是否可以优化我的解决方案。我已经准备好优化解决方案。他问了一些关于我的解决方案中包含的头文件的问题。我使用了 STL 排序函数,所以他问我在 C++ 中实现这个排序函数时使用了哪种排序算法(我无法准确说出这一点)。

然后他问了一些关于数据结构和算法的问题。

Q1。什么是数据结构?

Q2。简单描述一下你知道的数据结构。

Q3。你最喜欢的数据结构是什么,为什么?

Q4。告诉一个可以使用二叉树的用例。

Q5。哪个是最好的排序算法?

Q6。堆栈和队列有什么区别?

问题 7。我们如何使用链表和数组来实现堆栈?两种实现有什么区别?对两者进行时间复杂度分析。哪个更好?

Q8。什么是关节点?

问题 9。关于堆的几个问题。

然后面试官问了一个竞争性的编程问题。 https://www.geeksforgeeks.org/the-knights-tour-problem-backtracking-1/ 我应该写伪代码。

然后他问我最喜欢的科目。我告诉他操作系统。他又跟着向操作系统询问了几个问题。

Q1。什么是死锁?

Q2。死锁的必要条件。

Q3。进程调度的类型。

Q4。然后,他给出了一些进程的到达时间和突发时间,并要求使用 SJF 和 SRTF 对它们进行调度。

本轮建议——

  1. 彻底研究 DSA。
  2. 至少准备四门学科中的一门(DBMS、操作系统、数据结构与算法、计算机网络)
  3. 准备好上一轮编码问题的优化解决方案。
  4. 如果您不知道几个答案或您说出错误的答案,请自信并谦虚地接受您的错误。

第三轮——管理层面试

描述- 本轮主要关注项目和实习方面的问题。面试开始时,面试官要求自我介绍。我在介绍中只讲述了关于我的技术细节。他很失望。我请求允许再次自我介绍,这次我从爱好和兴趣到我所拥有的技术知识,都告诉了我所有关于我的事情。

然后他让我解释我的两个项目。接下来是项目的几个问题。

本轮建议——

  1. 为有关您的项目的问题做好准备。
  2. 准备好介绍自己的问题,但不要学习它。

第四轮——人力资源面试

描述- 这是您讨论自己的最有趣的回合之一。每一个问题和答案都是关于你的。所以这不会很难。

本轮建议——

  1. 准备好介绍自己的问题,但不要学习它。
  2. 准备所有常见的人力资源问题,但不要填塞答案。
  3. 是自发的。
  4. 如果您被要求说出强项或弱点,请告诉您自己的,而不是您在互联网上阅读的那些。还要准备好证明你实力的用例。
  5. 不要自相矛盾。
  6. 自信点。
  7. 保持微笑
  8. 特别:如果被问到5年后你在哪里看到自己?不要告诉确切的位置或任何确切的东西,而是告诉你的目标。一个可能的答案可能是——“作为一名大学生,没有行业经验,几乎不可能预测未来,但我可以说我的目标是向 XYZ 公司经验丰富、创新和创造性的员工学习.我很高兴能向我的团队学习并发展我的技能。”

我的判断:选中

祝你好运