近期论坛无法登录的解决方案


一亩三分地论坛

 找回密码
 获取更多干活,快来注册

一亩三分地官方iOS手机应用下载
查看: 2620|回复: 6
收起左侧

Dropbox电面面经

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

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

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

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

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

用 hashing part和整个文件内容来比较。
. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
Followup question:
1. Runtime analysis
2. what you need to compare before reading the file




singledog2016 发表于 2016-5-21 11:54:34 | 显示全部楼层
关注一亩三分地微博:
Warald
楼主能否贴个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我就不贴了,没存。. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

tommyhahn 发表于 2017-1-11 02:36:25 | 显示全部楼层
楼主请问hash function应该怎么写啊?还有时间复杂度应该怎样分析呢?谢谢!
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

custom counter

GMT+8, 2017-6-24 17:26

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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