《数据科学面试40+真题讲解》,K神本年度最后一次开课


一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
码农求职神器Triplebyte:
不用海投,内推你去多家公司面试
Airbnb 数据科学职位
in analytics and inference
天天打游戏、照样领工资,你要不要来?
把贵司招聘信息放这里
查看: 3031|回复: 33
收起左侧

[找工就业] Facebook intern 二面面经 攒人品!

[复制链接] |试试Instant~ |关注本帖
invinsibility 发表于 2016-2-19 06:37:22 | 显示全部楼层 |阅读模式

2016(1-3月)-[]EE博士+<3个月短暂实习/全职 - 内推| 码农类实习@Facebookfresh grad应届毕业生

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?Sign Up 注册获取更多干货

x
刚刚面完facebook intern, 二面。面经如下:

Given a set of words find all palindrome pairs.

Input:
tragic
cigar  -google 1point3acres
ragic
none
xenon
cat
dog . 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
taragic
cigar


Output: (cigar, tragic) -> (none, xenone)..... 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
给了一个O(mn^2)的算法,叫改进。 只面了这一道题,感觉虚得很。攒人品,攒人品, 攒人品!!!

本帖被以下淘专辑推荐:

喜马拉雅疯子 发表于 2016-2-19 06:55:16 | 显示全部楼层
我的想法是用一个hashmap,对于每个访问到的word,判断其整体的reverse的形式是否在map中,如果在,则找到一个。另外再判断截掉第一个字母的reverse形式是否在map中,如果也在,并且这个key并不是别的word截掉了一个字母的形式,那么又找到一组。(判断是否是另外的word是否截掉第一个字母的可以用set来判断)。然后保存两种状态,一个是截掉头一个字母放入map,并把这个放入set,另一个是直接原生的word放入set。
如此一个loop可以完成吧,如果算上reverse的时间,平均每个单词长度L,n个单词。时间复杂度O(nL)

补充内容 (2016-2-19 06:56):
额。是原生的word放入map= =. visit 1point3acres.com for more.

补充内容 (2016-2-19 07:06):-google 1point3acres
另外duplicate的时候出现了aaa,aaa,aaaa的情况直接判断一下map的key下面有没有value就可以了
回复 支持 反对

使用道具 举报

dendi 发表于 2016-2-19 14:56:04 | 显示全部楼层
喜马拉雅疯子 发表于 2016-2-19 06:55
我的想法是用一个hashmap,对于每个访问到的word,判断其整体的reverse的形式是否在map中,如果在,则找到 ...

可以直接存所有的形式啊,比如abc,直接存abc, cb,cba,ba 4个key ,然后判断之后有没相同的key.
回复 支持 反对

使用道具 举报

Morphy 发表于 2016-2-20 01:50:04 | 显示全部楼层
暂时只想到对于每个字符串,逆序加入trie tree,然后对每个字符串在trie tree里查是否存在前缀为字符串的逆序字符串,然后再进行判断。
回复 支持 反对

使用道具 举报

喜马拉雅疯子 发表于 2016-2-20 02:43:05 | 显示全部楼层
dendi 发表于 2016-2-19 14:56.1point3acres缃
可以直接存所有的形式啊,比如abc,直接存abc, cb,cba,ba 4个key ,然后判断之后有没相同的key.

都可以其实。。。不过duplicate的时候可能判断起来麻烦些吧
回复 支持 反对

使用道具 举报

dendi 发表于 2016-2-20 03:38:07 | 显示全部楼层
喜马拉雅疯子 发表于 2016-2-20 02:43. 1point 3acres 璁哄潧
都可以其实。。。不过duplicate的时候可能判断起来麻烦些吧

嗯,找到一个match的话其实就可见判断这对pair是否已经搜到过。。。
还有楼主说的截掉一个字母没怎么看懂,比如 abcbc,ba这种。。
同样楼上那个逆序trie 优化的话,还需要把每个字母从新修改。

回复 支持 反对

使用道具 举报

pivotal 发表于 2016-2-20 13:29:12 | 显示全部楼层
同学你好,facebook面试需要特定的语言吗,看到了你用的数据结构,感觉如果用面试官了解的语言,会让面试官有一种 “啊,这正是我所想要的” 的感觉。你觉得用python 面试会不会吃亏呢?
回复 支持 反对

使用道具 举报

 楼主| invinsibility 发表于 2016-2-21 06:00:20 | 显示全部楼层
pivotal 发表于 2016-2-20 13:29
同学你好,facebook面试需要特定的语言吗,看到了你用的数据结构,感觉如果用面试官了解的语言,会让面试官 ...
. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
不限制语言,用你最自信,最熟悉的语言答题。
回复 支持 反对

使用道具 举报

zhuyisong 发表于 2016-2-21 08:47:03 | 显示全部楼层
请问楼主有比较好的答案了吗?求指教
回复 支持 反对

使用道具 举报

iwofr 发表于 2016-2-21 09:09:43 | 显示全部楼层
就是和two sum一样的思路?只不过数变成了word,sum target变成了palindrome,instead of saving target-sum, save the palindrome of word in hashmap
回复 支持 反对

使用道具 举报

dendi 发表于 2016-2-21 10:16:33 | 显示全部楼层
iwofr 发表于 2016-2-21 09:09
就是和two sum一样的思路?只不过数变成了word,sum target变成了palindrome,instead of saving target-su ...
. 1point 3acres 璁哄潧
和上面说的一样,不过这样的方法有个缺点, abababababababa 这种复杂度会很高。还不如直接brute force.
回复 支持 反对

使用道具 举报

DJ963 发表于 2016-2-21 11:22:09 | 显示全部楼层
想问一下楼主怎么优化的啊

补充内容 (2016-2-21 11:24):
-google 1point3acres还有就是 cigar 和 tragic是一对,那么taragic和cigar是不是也是一对啊
回复 支持 反对

使用道具 举报

frank11118 发表于 2016-2-23 09:52:15 | 显示全部楼层
想請問樓主 pair 的規則
.鏈枃鍘熷垱鑷1point3acres璁哄潧
請問 cigar 和 ragicat 也算不算是 pair 呢?
回复 支持 反对

使用道具 举报

 楼主| invinsibility 发表于 2016-2-23 23:16:48 | 显示全部楼层
DJ963 发表于 2016-2-21 11:22
想问一下楼主怎么优化的啊

补充内容 (2016-2-21 11:24):

不算,taragic和cigar无论哪个放在前面都不能是polindrome啊?你怎么想的
回复 支持 反对

使用道具 举报

 楼主| invinsibility 发表于 2016-2-23 23:17:20 | 显示全部楼层
frank11118 发表于 2016-2-23 09:52
想請問樓主 pair 的規則

請問 cigar 和 ragicat 也算不算是 pair 呢?
. From 1point 3acres bbs
不算,哪个放在前面都不能是polindrome.
回复 支持 反对

使用道具 举报

DJ963 发表于 2016-2-23 23:29:11 | 显示全部楼层
invinsibility 发表于 2016-2-23 23:16
不算,taragic和cigar无论哪个放在前面都不能是polindrome啊?你怎么想的
. 1point 3acres 璁哄潧
没明白哪个放在前面都不能是polindrome是什么意思啊~
回复 支持 反对

使用道具 举报

 楼主| invinsibility 发表于 2016-2-23 23:54:07 | 显示全部楼层
DJ963 发表于 2016-2-23 23:29.1point3acres缃
没明白哪个放在前面都不能是polindrome是什么意思啊~

你说说taragic和cigar怎么变成一对polindrome
回复 支持 反对

使用道具 举报

DJ963 发表于 2016-2-24 00:52:52 | 显示全部楼层
invinsibility 发表于 2016-2-23 23:54
你说说taragic和cigar怎么变成一对polindrome

因为taragic 倒过来是 cigarat吧? 所以 cigar是 taragic倒序的一个字串,所以他俩算polindrome吗
回复 支持 反对

使用道具 举报

frank11118 发表于 2016-2-24 02:44:59 | 显示全部楼层
invinsibility 发表于 2016-2-23 23:17
不算,哪个放在前面都不能是polindrome.

因為您提供的 output 有 (cigar, tragic) ,所以才會認為他們是一對的. Waral 鍗氬鏈夋洿澶氭枃绔,
所以(cigar, tragic)不算一對囉?. visit 1point3acres.com for more.
回复 支持 反对

使用道具 举报

 楼主| invinsibility 发表于 2016-2-24 05:28:46 | 显示全部楼层
DJ963 发表于 2016-2-24 00:52
因为taragic 倒过来是 cigarat吧? 所以 cigar是 taragic倒序的一个字串,所以他俩算polindrome吗

不算,单个词是不能倒序的
回复 支持 反对

使用道具 举报

本版积分规则

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明

custom counter

GMT+8, 2017-11-18 01:49

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表