一亩三分地论坛

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

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

Dropbox电面面经

[复制链接] |试试Instant~ |关注本帖
kt9302 发表于 2016-5-21 07:49:16 | 显示全部楼层 |阅读模式

2016(4-6月) 码农类 本科 全职@Dropbox - 猎头 - 技术电面 |Other在职跳槽

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

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

x
发一个昨天的dropbox电面。上来直接在coderpad上做题 面试官: Benjamin题目: find all duplicate files in current directory and sub directory

用 hashing part和整个文件内容来比较。. more info on 1point3acres.com
鏉ユ簮涓浜.涓夊垎鍦拌鍧.
Followup question:
1. Runtime analysis
2. what you need to compare before reading the file.鏈枃鍘熷垱鑷1point3acres璁哄潧




singledog2016 发表于 2016-5-21 11:54:34 | 显示全部楼层
楼主能否贴个code.  感觉这个代码要设计很多文件的,API 不熟悉啊
回复 支持 反对

使用道具 举报

jy_121 发表于 2016-5-21 12:36:02 | 显示全部楼层
楼主能详细说下解法吗?谢谢
回复 支持 反对

使用道具 举报

 楼主| kt9302 发表于 2016-5-21 13:37:30 | 显示全部楼层
下面更新解法
回复 支持 反对

使用道具 举报

 楼主| kt9302 发表于 2016-5-21 13:46:52 | 显示全部楼层
给了一个path之后,用stack来做DFS, 用两层的hashmap来验证duplicates, Map<Integer, Map<String, List<String>>>, 第一层key是file length, 第二层key是自己写的hash function 计算出来的结果, value是file path. 如果碰到的是file而不是directory, 要去首先验证length, 之后验证hash, 如果都一样,就放到list里。DFS之后因为hash并不是唯一的,要对duplicates进行filter, compare byte by byte, 这样才能找出最准确的duplicate.
hash function 有各种方案,我用的是一个长度为6000的byte array, 在file beginning读2000, 在中间读2000, 在最后读2000,file小于6000B的话就全读。 python和java应该有native api支持file seek的。
然后SHA-512 来hash 这个 array. 把结果转化为hex string.
Code我就不贴了,没存。
回复 支持 反对

使用道具 举报

本版积分规则

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

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

关闭

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

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

custom counter

GMT+8, 2016-12-5 03:31

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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