📜  贝宝面试经历 |设置 9(校内)

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

贝宝面试经历 |设置 9(校内)

PayPal 访问了我们的校园招聘学生,工作简介是软件工程师。包括第一轮测试在内,共进行了4轮。

第1轮:

这是在hackerrank中进行的测试,所有语言都已启用。

    只有两个编码问题,它们是:
  1. 您将得到一个字符串,您必须找到该字符串中最频繁子字符串的频率,并且还有一些额外的约束,例如子字符串长度应落在给定的 minLength 和 maxLength 范围内,以及该子字符串中唯一字母的数量不应超过 maxUnique。提出问题的术语并非如此简单。实际上,我花了一些时间才完全理解这个问题。这可以使用散列轻松解决。
    Eg:
    
    I/P: abababab
    
    O/P: 4 (since ab is the most frequent substring with frequency 4)
  2. 你会得到一个字符串,你必须找到两个不重叠子序列的最大乘积。实际上,那里给出的问题陈述非常具有误导性,我无法在那里解决。后来我的一些解决它的朋友告诉我,我们必须将字符串分成两部分,并且我们必须独立地找到这两部分中的回文子序列。
    Eg:
    
    I/P: arcpacqabmaobanb
    
    O/P: 25 (since acaca and babab are the two subsequences and their lengths are 5 each so the max product is 5 * 5 = 25)

600多名学生参加了笔试, 28名学生入围下一轮。我就是其中之一。

回合 - 2:

  1. 面试官让我自我介绍,我介绍了我自己来自哪里,来自哪个分支,我对编码的热爱等。他似乎对我的介绍很满意。
  2. 之后就我所做的项目进行了简短的讨论。

    后来面试官问我,百万人的地址怎么存。我给了他一个简洁的 NoSql 方法,他似乎对此很满意。

    然后他告诉让我们解决一些算法问题,我说是的。

  3. 我将得到一个二叉搜索树,我必须对其进行验证。
    我立即告诉他,我在破解编码面试书时已经解决了这个问题。他笑了笑,说没问题,让我写我写代码的代码。
  4. 我将得到一个字符串,我必须打印出该字符串可能包含的字谜数。
    它只是打印该字符串可能的不同排列的计数,它是简单的阶乘(n)除以阶乘(重复)的乘积。我写了代码。
  5. 他问我为什么第一轮没有解决第二个问题。我告诉他我是如何误解这个问题的,然后他问我现在是否可以解决这个问题。我说是的,并为此编写了代码。

    他说祝你接下来的比赛一切顺利🙂在直接从他那里听到这个消息后我感到非常高兴。

    这一轮不知道淘汰了多少学生。

回合 - 3:

  1. 又是一个自我介绍的问题,我做的很棒,就像我在第一轮做的一样。他看起来很开心。现在又一次讨论了我的项目,这一次他问了更深层次的问题,比如你是如何实现这个的……
  2. 之后,他问了我对我在这一轮中写的问题的处理方法——2。我解释了它们。
  3. 然后他让我编写二进制搜索算法,我为此编写了代码。
  4. 然后他要求我反转一个链表。由于我没有太多的链表练习,所以我花了一些时间想出正常的解决方案并为此编写了代码。
  5. 然后他又提出了一个问题要解决。将会有一个包含一些字符的数组列表,并且还有另一个数组具有必须从第一个数组列表中删除的索引。
    Eg:
    
    I/P: ['l', 'a', 'p', 't', 'o', 'p'], [3, 1, 2, 5]
    
    O/P: ['l', 'o']

    我立即告诉他,我在一个项目中遇到过这种情况,他对此微笑并让我编写代码。我只是对第二个数组进行了排序,并使用一个计数器变量来跟踪到目前为止删除了多少索引,他似乎印象深刻。

  6. 然后他给了我25匹马的拼图。虽然我无法完全解决它,但我给了他两种方法。然后他告诉我答案是这两种方法的结合,我感到很高兴。

    之后面试就结束了,这一轮不知道淘汰了多少人。

回合 - 4:

    再次有这个自我介绍的问题。到那时,我成为自我介绍的高手 :p 这次小组中有两个人,因此我有点害怕。一个人只是在观察我,什么都不问,脸上也没有任何笑容。因为那个人,我开始紧张起来。
  1. 另一位面试官给了我负载均衡器的问题。
  2. 我将得到 3 个容器,我将有一个包含重量的列表,我必须将重量包装在这 3 个容器中,以使所有 3 个容器的重量总和差异最小。

    我最初给出了一种最小堆方法,我总是将即将到来的权重添加到包含最小权重的节点。他要求我在董事会上实施。我做到了,但平衡不是很完美。

    然后我告诉他,我们可以添加 2 或 3 个重量并用棍棒将它们组成一个组,同样我们可以组成 3 个组。尽管如此,平衡并不是很好。

    我再次告诉他,我们可以对重量进行排序,然后我们可以填充他不满意的容器,因为通过对自身进行排序,解决方案变得次优。

    最后,我告诉他最好的解决方案是使用动态规划生成所有可能的组合,并从中找出最佳组合。他似乎对这个解决方案很满意,并问我这个解决方案的时间复杂度。我说 3 ^ n 因为这里没有任何重叠的子问题。他最后说好的并告诉这是一个 NP-hard 问题:p 并且没有任何多项式解决方案。

  3. 现在我被要求在不使用 NLP 或机器学习或类似的东西的情况下从给定段落中提取名称。这个问题对我来说看起来很抽象。他给我这个问题是为了测试我是否容易放弃,我想了一段时间,给出了一些2或3的方法。虽然他们没有非常完美地提取名字,但他们会在某种程度上发挥作用,他似乎对此感到满意。
  4. 现在另一个人开始问我问题。他问我 hashtable 是如何在 O(1) 中实现搜索的,当时我还不知道答案。所以我告诉了那个,他告诉我它是如何实现的。
  5. 接下来,他让我从链接列表中删除重复项,我做到了。接下来,他告诉链接列表现在已排序,他希望我更改该代码本身而不是重新编写代码,我就这样做了。

最后,他给了我一个微笑,说面试结束了,我们一起走出了那个房间。最后选出了7个人,我很高兴能成为其中的一员。谢谢,极客的极客🙂