Airbnb電面面經,Airbnb電面面

來源:互聯網
上載者:User

Airbnb電面面經,Airbnb電面面

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.1,SanJose",

"6,25,10.1,Oakland",

"19,15,9.1,SanJose",

"3,19,8.1,SanJose",

"3,11,7.1,Oakland",

"27,12,6.1,Oakland",

"1,3,5.1,Oakland",

"25,4,4.1,SanJose",

"5,6,3.1,SanJose",

"29,22,2.1,SanJose",

"30,23,1.1,SanJose"

]


這題的思路不難,但是實現起來還是有點難度的。在遍曆的時候需要維護一個LinkedHashMap作為page並且完成去重。用LinkedHashMap的好處是可以保證所有的entry是按插入的順序排序的,所以仍然可以保證按score排序的性質。另外,一旦遇到相同的host_id,則將其對應的行存到另一個buffer裡。由於需要變遍曆邊增減容器裡的資料,需要用ListIterator,並調用remove和add方法。之前只用過remove,從來沒用過add。


第二輪是他家一道高頻題,給一堆租房的request,作為輸入數組,找一個array subset,其中任意兩個元素不能相鄰,(因為要打掃房間),求使得子集裡所有元素之和最大。一維DP解之,另外可以使用滾動數組讓空間開銷為常數。


第三輪是實現一個CSV格式的Parser。其中處理逸出字元比較tricky,當時只給了三個最基本的test case,所以都過了,但是由於花了些時間debug,有些特殊情況一開始處理錯了,後來沒時間進行處理了。這一輪面得很鬱悶,面試官沒怎麼理我,感覺在做自己的事情,沒什麼交流。測試的時候把不小心把輸入內容給貼錯了,花了不少時間檢查。


他家的題目感覺除了第二輪實現起來簡單,其它的題目都要寫不少代碼,45分鐘碼完bug free的確不簡單。





相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.