📜  Airtel X-Labs SDE 实习面试经验 | 2021 年校内

📅  最后修改于: 2021-11-10 06:16:05             🧑  作者: Mango

标准:

  • 允许的分支 CS/IT
  • 直到第四学期:GPA>=8.5

大约有 45 人在这里入围。

第 1 轮:这是在 AMCAT 上进行的在线轮次。它由 3 个部分组成。

第 1 部分:它有 14 道逻辑推理题,非常简单。解决这些问题不需要太多的练习。每个部分都有一个计时器。本节有 15 分钟。

第二部分: 16道不算太难的定量题,20分钟完成。

第 3 节:它是关于编程的。每个人都有不同的套餐。有两个编程问题需要在 1 小时内解决。

  • 合并重叠区间问题的一种变体。问题要求在合并所有重叠间隔后计算不同的间隔。

    本题要慎重处理边角案例。

  • 这是一个非标准的递归/DP 问题。给定两个只包含 0 或 1 的字符串str1 和 str2,有一些步骤可以将 str1 更改为 str2。
    step1: find a substring of str1 of length 2 and 
    reverse the substring, and str1 becomes str1' (str1' != str1)
    step2: find a substring of str1' of length 3, and 
    reverse the substring, and str1' becomes str1'' (str1'' != str1')
    step3: find a substring of str1' of length 4, and 
    reverse the substring, and str1' becomes str1'' (str1'' != str1')

    以下步骤类似。

    字符串长度在 [2, 30] 范围内

    要求:每一步必须执行一次,不能跳过前面的步骤执行下一步。如果可以将 str1 更改为 str2,则输出所需的最小步数,否则输出 -1。

    由于这个问题的约束非常少,我使用普通递归解决了它。

    我能够完全解决这两个问题。能够几乎完全准确地解决第一两个部分并完成 1 个编码问题的学生被列入面试的候选名单。

    在线轮结束后,24人被选中进行面试。

    第二轮:面试时长超过 1 小时。首先,他让我介绍一下我自己,除了简历中提到的内容。

    我在简历中提到了两个关于 ML 的项目,面试官似乎印象深刻,让我向他简要解释一下。没有问任何后续问题。然后他直接跳到编码问题:

    1. 给定一棵二叉树,在树的每一层打印备用节点。

      输出格式:

      The first node at each level must be printed always.
      Each level should begin with a new line.

      我讨论了我使用队列进行树的级别顺序遍历的方法,并保留一个变量来指示下一个级别和一个标志变量(在每次迭代后不断否定)以打印备用节点。
      面试官对我的方法很满意,他让我写同样的代码。他让我在某些情况下试运行以检查代码。

    2. 树的前序、后序和中序遍历的伪代码。
    3. 检测链表中的循环。我在 O(n) 的时间和空间中讨论了基于地图的方法,但面试官要求一个具有 O(1) 空间复杂度的算法。然后我告诉他弗洛伊德循环算法。他印象深刻,并要求我为它编写代码。
    4. 作为最后一个问题的后续,他还要求我从LL中删除循环。(问了唯一的方法,不需要代码)
    5. 给定一个正整数数组,设计一个算法来打印子数组的开始和结束索引,总和为 k(k 作为输入给出)。
      预期解决方案: O(n) 时间代码被询问
    6. 他让我快速解释酸的性质。

    总的来说,面试官对讨论持开放态度,并在需要时提供提示。这是最后一轮,结果公布后,有6名候选人被选中进行实习,我就是其中之一。