一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 1792|回复: 33
收起左侧

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

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

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

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

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

x
刚刚面完facebook intern, 二面。面经如下:. 1point3acres.com/bbs
.鏈枃鍘熷垱鑷1point3acres璁哄潧
Given a set of words find all palindrome pairs.

Input:
tragic
cigar  
ragic
none. From 1point 3acres bbs
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。. visit 1point3acres.com for more.
如此一个loop可以完成吧,如果算上reverse的时间,平均每个单词长度L,n个单词。时间复杂度O(nL). 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴

补充内容 (2016-2-19 06:56):
额。是原生的word放入map= =

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

使用道具 举报

dendi 发表于 2016-2-19 14:56:04 | 显示全部楼层
喜马拉雅疯子 发表于 2016-2-19 06:55. 1point 3acres 璁哄潧
我的想法是用一个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
可以直接存所有的形式啊,比如abc,直接存abc, cb,cba,ba 4个key ,然后判断之后有没相同的key.

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

使用道具 举报

dendi 发表于 2016-2-20 03:38:07 | 显示全部楼层
喜马拉雅疯子 发表于 2016-2-20 02:43
都可以其实。。。不过duplicate的时候可能判断起来麻烦些吧
. From 1point 3acres bbs
嗯,找到一个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 ...

和上面说的一样,不过这样的方法有个缺点, abababababababa 这种复杂度会很高。还不如直接brute force.
回复 支持 反对

使用道具 举报

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

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

使用道具 举报

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

請問 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 的規則. 鍥磋鎴戜滑@1point 3 acres
. more info on 1point3acres.com
請問 cigar 和 ragicat 也算不算是 pair 呢?
. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
不算,哪个放在前面都不能是polindrome.
回复 支持 反对

使用道具 举报

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

使用道具 举报

 楼主| invinsibility 发表于 2016-2-23 23:54:07 | 显示全部楼层
DJ963 发表于 2016-2-23 23:29
没明白哪个放在前面都不能是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) ,所以才會認為他們是一對的
所以(cigar, tragic)不算一對囉?
回复 支持 反对

使用道具 举报

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

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

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

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

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-3 10:30

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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