第 1 轮:编码示例
在这个编码示例中,我有 90 分钟的时间来回答 2 个编码问题。
问题 1:给定一个由 n 个字符组成的字符串A 和一个由 m 个字符组成的字符串B,编写一个函数,该函数将返回 A 必须被声明的次数,使得 B 是重复的 A 的子串。如果 B 永远不会是一个子串,返回-1。
例子:
A = ‘abcd’
B = ‘cdabcdab’
该函数应该返回 3,因为在声明 A 3 次后,得到 ‘abcdabcdabcd’,B 现在是 A 的子串。
您可以假设 n 和 m 是 [1, 1000] 范围内的整数。
问题 2:考虑一棵有 N 个节点的无向树,编号从 1 到 N。每个节点都有一个与之关联的标签,它是一个整数值。不同的节点可以有相同的标签。编写一个函数,给定长度为 N 的零索引数组 A,其中 A[j] 是树中第 (j + 1) 个节点的标签值和长度为 K = (N – 1) * 2 其中描述了树的边,返回最长路径的长度,使得该路径上的所有节点都具有相同的标签。长度是该路径中的边数。
例子:
A = [1, 1, 1, 2, 2]
E = [1, 2, 1, 3, 2, 4, 2, 5]
这棵树如下所示。一个节点遵循表单标签值。
----------1, 1
-----1, 2 1, 3
2, 4 2, 5
函数应该返回2,因为最长的路径是2->1->3,而且这条路径有2条边。
假设 1 <= N <= 1000 并且数组 A 的每个元素都是 [1, 1000000000] 范围内的整数。
第二轮:电话面试
在这次电话采访中,我被问到一个问题。
问题:编写一个函数,该函数接受列表 L 并返回该列表的大小为 N 的随机子列表。假设索引必须按递增顺序排列。也就是说,你不能倒退。
例子:
L = [1, 2, 3, 4, 5]
N = 3
该函数应返回以下列表之一:
[1, 2, 3]
[1, 2, 4]
[1, 2, 5]
[1, 3, 4]
[1, 3, 5]
[1, 4, 5]
[2, 3, 4]
[2, 3, 5]
[2, 4, 5]
[3, 4, 5]
第三轮:电话面试
我再次只被问到一个问题。
问题:给定一个包含视频名称及其观看率的列表 L,编写一个函数来返回观看率最高的 10 个视频。视频名称可能会出现多次。
例子:
L = [(‘abc’, 10), (‘def’, 15), (‘ghi’, 10), (‘abc’, 12), …, (‘xyz’, 100)]
函数应该返回 [‘xyz’, ‘abc’, …, ‘def’, ‘ghi’]
经验:
我解决了所有问题,但不幸的是,我没有被选中。虽然我没有被选中,但我有一个非常积极的经历。我的面试官和招聘人员都很愉快。明年我肯定会再试一次,希望我能清除它并被选为全职工作。
面试技巧:
问问题。面试官会故意给你一个模糊的问题,希望你提出必要的问题来为自己澄清。
不要惊慌。我知道接受采访可能会让人伤脑筋,尤其是如果这是你的第一次。但是,紧张只会让事情变得更糟。收集自己,如果你不知道答案,没关系。仔细考虑几分钟,我相信任何人都可以想出一个解决方案。这些问题旨在让您能够在分配的面试时间内解决。
大声思考!我怎么强调这一点都不为过。你也在根据你的思维过程受到评判。如果你的面试官不知道你在想什么,他们就无法给你暗示或以任何方式纠正你。相信我,他们希望看到你成功。他们会帮助您并指导您解决问题。
除此之外,学习,学习,再学习。尽可能多地完成具有算法挑战性的问题。 Cracking Coding Interview 和 Geeks for Geeks 将成为您在学习过程中最好的朋友。充分利用这些资源。