一亩三分地论坛

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

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

warm up了30分钟狗家电面

[复制链接] |试试Instant~ |关注本帖
wds41138 发表于 2016-8-31 07:10:42 | 显示全部楼层 |阅读模式

2016(7-9月) 码农类 硕士 全职@Google - 猎头 - 技术电面 |Otherfresh grad应届毕业生

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

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

x
下午结束的Google的第一轮电面。

two identical string except one string has one more char, how to find? --> what if shuffled?


第一问没写代码简述了一下,第二问问了我25分钟。。

我:用count[26*2] for alphabet 或者count[128],space是O(1)。
他:能不能再优化?
我:sum up ASCII of all char,可能要溢出可以用long long或者边加边减会好点。。
我:补充说:为了防止溢出可以用xor更好,space还是O(1)但是省了至少。
他:你这方法太hacky了,能不能用别的数据结构?
我:用set的话space time都更差了。
他:C++ set是怎么样的?
我:是类似红黑树,O(lg n)插入查找。
他:嗯的确不好,有没别的?
我:用map<string, int>吧,这样从128-># of different char
他:…(还没说话)
我:哦不对应该是unordered_map,因为map还是红黑树。
他:C++的unordered_map是?
我:类似于hash,constant time插入查找。
他:哦就是hashmap! Great do you have any question for me?
我:(黑人问号??原来你就是在等hash这个单词啊!!!)


就做了一道warm up,感觉药丸。。面试啥的还是多用用Java吧,谁让C++有hash思想没有hash命名的容器!!

也怪我hash思想不够。。



补充内容 (2016-9-1 02:11):
面试官想听到hash估计是想降低cardinality吧。

评分

1

查看全部评分

todayand 发表于 2016-8-31 10:31:13 | 显示全部楼层
如果不写C++确实不知道unordered_map就是java里的hashmap.... PS: 为什么不用unordered_set?
回复 支持 反对

使用道具 举报

wsliubw 发表于 2016-9-1 00:50:39 | 显示全部楼层
有的面试官不喜欢听人说HashMap是 O(1)查找
回复 支持 反对

使用道具 举报

mnmunknown 发表于 2016-9-1 01:22:26 | 显示全部楼层
sum up ASCII 的想法挺好的啊,在这题上能直接用 ASCII 为啥要用 hash  = =
回复 支持 反对

使用道具 举报

daniel_hl 发表于 2016-9-1 01:33:11 | 显示全部楼层
用bit xor也可以吧
回复 支持 反对

使用道具 举报

 楼主| wds41138 发表于 2016-9-1 02:08:22 | 显示全部楼层
todayand 发表于 2016-8-31 10:31
如果不写C++确实不知道unordered_map就是java里的hashmap.... PS: 为什么不用unordered_set?
. visit 1point3acres.com for more.
unordered_set的space要O(n)了吧?
回复 支持 反对

使用道具 举报

 楼主| wds41138 发表于 2016-9-1 02:09:16 | 显示全部楼层
mnmunknown 发表于 2016-9-1 01:22
sum up ASCII 的想法挺好的啊,在这题上能直接用 ASCII 为啥要用 hash  = =
-google 1point3acres
对,但他说太hacky…可能他就是在想听我说hash…
回复 支持 反对

使用道具 举报

mnmunknown 发表于 2016-9-1 02:10:52 | 显示全部楼层
wds41138 发表于 2016-9-1 02:09
对,但他说太hacky…可能他就是在想听我说hash…

个人觉得这面试官有点按照题库答案照本宣科的意思,不怎么变通。。 这题怎么看最直观简单的都应该是 ASCII sum 和 XOR 啊
回复 支持 反对

使用道具 举报

 楼主| wds41138 发表于 2016-9-1 02:12:41 | 显示全部楼层
mnmunknown 发表于 2016-9-1 02:10
个人觉得这面试官有点按照题库答案照本宣科的意思,不怎么变通。。 这题怎么看最直观简单的都应该是 ASCI ...
. 1point 3acres 璁哄潧
无奈,希望还有机会吧。。
回复 支持 反对

使用道具 举报

ytsr 发表于 2016-9-1 03:45:29 | 显示全部楼层
bit manipulation  就是 每个字符出现2次,其中的一个出现1次的变种。
把所有的字符xor一下就是答案。O(1) space, O(m+n) time
回复 支持 反对

使用道具 举报

william_gong 发表于 2016-9-1 03:52:16 | 显示全部楼层
能不能用二分来做啊?感觉快点
回复 支持 反对

使用道具 举报

zxcnn 发表于 2016-9-1 04:26:37 | 显示全部楼层
c++面试看来基本的STL容器得很熟啊
回复 支持 反对

使用道具 举报

shuyangsheng 发表于 2016-9-1 04:41:28 | 显示全部楼层
你最开始那个count[26]不就是个hashmap么,用unordered_map其实就是省去了自己实现hashmap的麻烦,leetcode简单题啊。。。
回复 支持 反对

使用道具 举报

 楼主| wds41138 发表于 2016-9-1 04:43:29 | 显示全部楼层
william_gong 发表于 2016-9-1 03:52
能不能用二分来做啊?感觉快点
-google 1point3acres
shuffle的话就不能二分了。
回复 支持 反对

使用道具 举报

本版积分规则

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

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

关闭

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

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

custom counter

GMT+8, 2016-12-9 00:37

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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