📜  直接采访|设置 6(在校实习)

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

最近 Directi 访问了我们的校园进行实习生选择。在 codechef 上主持了 1 轮在线编码,2 轮 Algo 面试和 1 轮技术轮。>

在线编码回合:有 2 个问题。问题 1 得 2 分,而问题 2 得 1 分。

  • 问题 1.有一个压缩字符串,例如。 “ab2c3”,字符串包含小写字符和数字。我们可以如下解压缩给定的字符串:每当我们在字符串得到一个数字“n”时,数字之前的字符串部分将重复“n”次。所以在上面的例子中,我们得到一个 2,所以字符串将变成“ababc3”,现在我们得到一个 3,所以最终的字符串将是“ababcababcababc”。
    给定一个压缩字符串和一个数字 k,您必须输出未压缩字符串中的k字符。 1 <=字符串长度 <= 1500 1 <= n <= 1000 1 <= k < 2 31
    例子:
    input: ab2c3 10 
    output: c
  • 问题 2.有一个字符串,其字符只能是 ‘a’、’b’ 或 ‘_’(字符串只能有一个 ‘_’)。在每一步,我们都可以修改字符串如下:
    1. ‘_’可以与其相邻的字符互换,例如“a_ba”可以改为“_aba”或“ab_a”。
    2. 与’_’相邻的两个字符(都在’_’的同一侧)如果两个字符不同,则可以与’_’一起反转,例如“aa_ba”可以更改为“aaab_”但不能更改为“_aaba”,因为两个字符都是 ‘a’。

    给定两个字符串,初始状态和最终状态(长度相同),您必须输出将初始状态的字符串更改为最终状态的字符串所需的最少步骤数。

    例子:

    input: a_b ab_ 
    output: 1 
    input: abaa_a b_aaaa 
    output: 4 
    

    提示:使用广度优先搜索

    比赛结束后,他们选出了 12 名学生参加下一轮比赛。

第二轮(电话面试):

  • 问题 1.假设给定一个长度为 n 的字符串和一组对 (i, j 使得 0 <= i < j < n)。对“i, j”(基于 0 的索引)意味着您可以任意多次交换字符串的ij字符。你必须输出,可以做输入字符串任意数量的掉期产生的字典序最小的字符串。
    例子:
    input: zcxfbe  0, 1    0, 2    3, 5
    output: cxzebf

    提示:尝试将问题建模为图形问题。

  • 问题 2.假设桌子上有两堆盘子。一个有“m”个红板,另一个有“n”个黑板。在他/她的机会中,玩家可以选择任意数量的红盘或任意数量的黑盘或相同数量的红黑盘。如果玩家不能在他/她的机会中采取行动,则他/她将失败。你正在和你的朋友玩这个游戏。假设您开始游戏并且两个玩家都以最佳方式进行游戏,如果您输了则输出“L”或如果您赢则输出“W”。
    例子:
    input: m = 1, n = 2
    output: L
    input: m = 2, n = 2
    output: W

    这一轮过后,他们选出了4人进行下一轮面试。

第三轮(面对面):

  • 问题 1.假设有 ‘n’ 棵树(字面量树,不是计算机科学树,假设它们没有任何分支,更像是一根直棍子),每个树都有一定的高度。我们想要 x 长度的木头。我们有一个樵夫,我们将用它来切割距离地面相同高度“h”的所有树木,如果“h”大于任何树木的高度,则意味着这棵树没有被砍伐。给定所有树木的高度和所需木材的长度“x”,输出距离地面的高度“h”,您将从那里砍伐所有树木。
  • 问题 2.你有一个无向加权图,给定输入“x”和“y”,这是图中的任意两个顶点,你必须输出从 x 到 y 的任何最短路径中的所有边。
    请注意,从 x 到 y 可以有多个最短路径。我们必须输出任何最短路径中的所有边。

    他们只选了一名学生参加下一轮比赛。

第 4 轮(技术轮,电话):在这一轮中,他问了我一些小问题,其中包括:

  1. 关于我的任何自我项目。
  2. BST 和哈希的优缺点。与散列冲突等相关的问题。
  3. 一个关于数据库的问题,他让我做一个查询。
  4. 制定任何给定时间的时钟时针和分针之间的角度。
  5. 假设我们有一个巨大的 CSV 文件,其中包含 IP 地址范围及其相应的国家/地区代码,给定任何 IP 地址,我们将如何找到它所属的国家/地区。
  6. BST 和尝试之间的区别。
  7. 他从网络课程和操作系统课程中问了几个问题。
  8. 你有一个巨大的链表,你将如何检测链表中的任何循环。

    他又问了一些我不记得的小问题,之后采访就结束了。
    在完成所有这些回合后,我被选中了。 🙂

提示:

  1. 他们的主要重点是字符串和图形,为他们做好准备。
  2. 在纸上或谷歌文档上练习你的代码,你不会得到任何用于编码的编辑器。
  3. 在所有主题上保持您的概念清晰,他们可以询问您任何数据结构或算法的任何细节。
Directi 的所有练习题!