Airbnb的题目往往都很啰嗦,其实简单几句话就可以概括的。要求代码写完了能够编译,然后自己写测试用例并跑过。感觉这样的好处是的确很考察代码功力,那种当场一次bug free,然后跑几个测试用例全过的感觉很爽。不好的地方是容易增加变数,因为即使自己本身水平不变,不同时候发挥略有差异,检查一两个bug用的时间可能就没机会做后面的follow up了。
第一轮实现分页显示。给了以下一些输入数据,要求将以下行分页显示,每页12行,其中每行已经按score排好序,分页显示的时候如果有相同host id的行,则将后面同host id的行移到下一页。
[
"host_id,listing_id,score,city",
"1,28,300.1,SanFrancisco",
"4,5,209.1,SanFrancisco",
"20,7,208.1,SanFrancisco",
"23,8,207.1,SanFrancisco",
"16,10,206.1,Oakland",
"1,16,205.1,SanFrancisco",
"6,29,204.1,SanFrancisco",
"7,20,203.1,SanFrancisco",
"8,21,202.1,SanFrancisco",
"2,18,201.1,SanFrancisco",
"2,30,200.1,SanFrancisco",
"15,27,109.1,Oakland",
"10,13,108.1,Oakland",
"11,26,107.1,Oakland",
"12,9,106.1,Oakland",
"13,1,105.1,Oakland",
"22,17,104.1,Oakland",
"1,2,103.1,Oakland",
"28,24,102.1,Oakland",
"18,14,11.

本文分享了一次Airbnb电话面试的经历,涉及分页显示算法实现、租房请求最大和问题及CSV解析。题目要求在保持元素排序的同时按host_id分页,使用LinkedHashMap和ListIterator解决;第二轮是找到不相邻元素最大和的一维DP解法;第三轮则是实现CSV解析,处理转义字符。面试过程中,部分测试用例和特殊情况处理成为难点。
最低0.47元/天 解锁文章
417

被折叠的 条评论
为什么被折叠?



