最近微软在我的学院进行了一次校园面试。它包括五个回合,都在校园里。详情如下: 第一轮(在线)(30分钟): 由15个主要与c/c++和概率有关的MCQ组成。这相当容易,几乎没有人被淘汰。
第二轮(在线)(1小时): 这一轮我们得写两个程序。
1.给出了随机索引中零值字符串的排序列表。返回给定搜索字符串的位置。如果字符串不存在,则返回-1。 例如:“a”,“b”,“c”,“b”,“b”,“c”,“c…”…。找到“b”。o/p:2
简单的线性搜索就足够了。
2.给定一个整数数组,其中除3个元素出现偶数次外,所有元素都出现奇数次,求出3个元素。
蛮力解决方案很好。你也可以使用hashmap。
上述两轮由cocubes主持。通用域名格式。
第三轮(团体飞行)(30分钟):
剩下的候选人分成5组。每个小组都有一名面试官,我们有一个问题要解决。
编写一个程序,使用恒定的空间将方阵顺时针旋转90度。
第四轮(F2F)(90分钟): 面试官问了很多关于我的项目的问题。在NLP和机器学习相关的问题上花了大约30分钟。问我关于支持向量机,神经网络,反向传播等。
然后他又开始问编程问题。我被要求编写一个正则表达式(regex)匹配程序。给定一个模式字符串和一个输入字符串,如果两者匹配,则返回true。正则表达式中的特殊字符,比如*和?必须加以考虑。基本上如果有一个“?”在模式字符串中,输入字符串中的任何字符都可以代替它。“*”也是一样,但在这种情况下,输入字符串中的任何字符都可以替换它。
Example: a*b matches acdb a?b matches acb a*b does not match bca a?b does not match acdb
面试的其余部分涉及对该程序进行修改。例如,修改程序,使其在部分匹配时返回true,即即使模式存在于输入字符串中。
第五轮(F2F): 这一轮开始的问题是,你为什么想为微软工作?说说你自己等等。 然后是最后一轮的技术问题。 我被要求写两个程序并回答一些理论问题。 1.给定0和1的MxN矩阵,将所有行和列转换为0,其中至少有一个0。你可以使用O(m)空间。 2.给定字符矩阵和输入字符串,如果矩阵中存在字符串,则返回true。
input string = ABCDE Matrix = A T G B E H C D V
输出:字符串存在。
最后的几个问题: 1.关于b树的一些问题。不记得确切的问题了。 2.描述一个平衡二叉搜索树的算法。 3.描述另一种算法。
这是最后一轮。
我要感谢GeekSforgeks团队为我们提供了如此美妙的平台。
希望这对你们中的一些人有所帮助。
非常感谢。
如果你喜欢Geeksforgek,并想贡献自己的力量,你也可以写一篇文章,然后把你的文章发到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。