微软面试经历 |设置 122(校外)
第 1 轮 - Co Cubes 在线测试(75 分钟) -
1-) 给定一个按排序顺序排列的字符串数组,中间有一个空字符串和一个目标字符串,找出目标字符串是否存在。
例如 – arr[] = {“”,””,”abc”,””,””,””,”bcd”,”ef”,””,”xyz”,””};
目标=“xyz”;
2-) 给定一个二叉树和一个目标整数。如果叶子节点存在该整数,则删除它并递归删除新形成的叶子。
3-) 在某些节点中包含零值的给定链表中,计算两个零之间的值之和,并将链表中的零值替换为该和。
例如:7 0 4 5 6 0 1 1 将变为 7 15 1 1。
零总是成对出现。
第 2 轮 - 现场(笔和纸)(45 分钟)
1.) 整数数组中的最大乘积子数组。
2.)按排序顺序展平链接列表。
问题链接:https://www.geeksforgeeks.org/flattening-a-linked-list/
第三轮——面试
在有向图中找到循环。进一步,他让我找到没有。图中的循环。
之后他让我使用类和对象来实现它。
然后他让我测试它的各种角落条件,如自循环、多边等
您应该清楚代码方法以及时间复杂度如何变为 O(V+E)。
第四轮——面试
1.) 如果在您的计算机中病毒复制了系统中的所有文件,并更改了文件的名称、扩展名和位置。如果您必须识别原始文件和重复文件,请给出启发式方法,您将如何做。
关于这个问题发生了很多讨论,他一直在改变场景,比如如果文件太大那么你将如何识别。
如果文件是媒体文件、txt 文件、exe 文件,那么您的方法将是什么。
2.) 通过买卖股票获得最大利润。
3.) 给定一个字符串数组,您必须确定该数组中最长的字符串,该数组由同一数组的 2 个或多个字符串连接而成。
例如 arr[] = {“pq”,”abc”,”xyz”,”kbc”,”kbcxyzpq”,”abcxyzkbc”}
Ans 将是“abcxyzkbc”,因为它由 2 个或更多字符串组成并且具有最大长度。
请注意,如果一个字符串由 2 个字符串组成并且长度最大,那么它将是答案。
它形成的字符串数 没关系,它必须至少是 2 个字符串,其余答案将仅取决于字符串的长度。
使用 Tries 解决了它,并且还被要求编写工作代码。
4.) 测试接受电子邮件 ID 并检查它是否正确的函数。
第 5 轮 – 面试
给出了一个哈希表,其中包含字符串到符号的转换映射。
例如
“;gt;”将映射到“>”
“;lt;”将映射到“lt;xyz”
–> str = “;lt;;gt;” ——>””
他只专注于角落案例。
之后他让我为这个问题编写代码。他询问了该问题的各种版本,例如映射字符串的长度是否相同或者它们是否可变,是否所有这些都以“;”开头和结尾如果它们是随机字符串。