微软面试经历 |设置 106
1. 电话面试
- 说说你自己
- 内核相关问题(linux OS/kernel和windows OS/kernel的区别)
- 进程和线程的区别
// 32 bit architecture
bool isPowerOftwo(int no)
{
int i = 1;
int state = 0;
int k = 0;
for (int j = 0; j<32; j++)
{
if (state == 0)
{
k = no & i;
if (k != 0)
state = 1;
}
else
{
k = no & i;
if (k != 0)
return false;
}
i = i << 1;
}
return true;
}
bool isPowerOfTwo(int no)
{
if (no == 0)
return true; //this is wrong. it should be false
if (no < 0)
return false; // not supported
if (no & (no-1) == 0)
return true;
return false;
}
2. F2F
- C中有多少种存储类型。
- C中有多少种数据类型。
- 给定一个包含许多字符串的文件。找出存在多少个独特的字谜。 (哈希表、BST 和最后的 TRIE 方法)。
- 对于上述问题,您将如何以分布式方式处理大数据。
- 您将如何在一个 reducer 中处理大数据。
- 分布式系统有什么特点。
3. F2F
- 实现与字数统计非常相似的 map reduce 程序。
- 您将如何在一个 reducer 中处理大数据。
- 您将如何跨集群和数据中心分布数据。
- hadoop 的内部结构。(在映射阶段后保存中间文件)
4. F2F
- 将字符串“aaabbcdddd”压缩为“a3b2c1d4”
- 这个程序实际上在内部做什么
void fun() { int a = 5; int * b = new int(10); }
- 这个程序对多线程有什么影响。
- 设计分布式文件系统。
5. 领导轮
- 你为什么要改变?
- 围绕天蓝色的商业模式、收入模式、工作简介等进行讨论。
- 给定二叉树的根和一个节点,找到该节点的所有祖先。
微软的所有练习题!