Zomato 面试经历
测试
• 8 个 MCQ(基于类、OOP、输出问题、时间复杂度、DBMS、操作系统)
• 基于求系列总和的问题
1 + (1 + 2) + (1 + 2 + 3) + ……………… + (1 + 2 + 3 + …………… +n)
时间复杂度 O(1)。
• 为二维数组编写代码,使其为零,它将相应行和列的所有元素覆盖为零
输入:1 0 1 1
1 1 1 1
1 1 1 0
1 0 1 0
输出:0 0 0 0
1 0 1 0
0 0 0 0
1 0 1 0
没有多余的空间。
面试
第1轮:
• 编写 URL 压缩算法。
例如:
输入:www.zomato.com/fun/alpha/beta/test
输出:www.zomato.com/tv28t
PS。多个答案是可以接受的。
• 编写代码以查找数组中前一个较短的元素。
输入:
2
6
7 2 3 4 5 1
6
10 2 8 9 11 2
输出:
-1 -1 2 3 4 -1
-1 -1 2 8 9 -1
• 找到最小成本路径(动态规划)
• 编写代码来交换链表中的相邻元素(迭代和递归)。
输入:1 2 3 4 5
输出:2 1 4 3 5
• 编写代码从链表中删除两个连续的相同数字(迭代和递归)。
输入:1 1 2 2 2 3 4 4 5
输出:2 3 5
第二轮:
• 给定数组中的文件列表,设计“Ls”命令(搜索函数)。
提示:使用尝试。
输入:[“fun”、“funny”、“foo”、“spam”、“set”]
4
“Ls f”
“Ls fu”
“Ls”
“Ls r”
输出:fun fun foo
好玩有趣
垃圾邮件集
-1
• 编写代码以从字符串中删除相邻的相同字母,从而在结果字符串中没有两个字符相同。
输入:“abccbdccc”
输出:ADC
第三轮:
• 本轮完全基于简历。面试官要求我按照掌握的优先级对我的技能进行排名。我的前两项技能是 C++ 和 RubyOnRails。进一步的问题:
o 编写各种迁移命令。
o 耙命令。
o SQL 查询。
o 我的项目的数据库设计。
• 给定一张世界地图,所有通过陆地覆盖的地方用“L”表示,其余的用“W”表示。由于世界是球形的,因此行和列是循环的(在第 1 行之前,第 n 行出现,在第 n 行之后,第 1 行与列相同)。计算岛屿的数量。
输入:
4
4 4
LWWL
LLWL
万维网
LWLL
4 4
LWWL
LLWW
万维网
LWLW
2 2
二
二
3 3
万维网
WLW
万维网
输出:
1
2
0
1
• 设计bash 的“Ctrl + R”函数。该命令用于查找记录在内存文件中的先前在 bash 上键入的命令。
函数一:从内存中的当前位置查找上一条/下一条命令。
函数2:查找最后输入的命令 'like' 给定的查询,如果 Ctrl + R 输入 'n' 则从内存中查找前第 n 个命令。
HR:这是一个关于面试经验的普通小讨论。