dropbox 电面面经



  • 如何找出一个文件系统下所有的 dup files

    我把问题想简单了,就用了递归, 然后比较每个 file 的 hash, 如果两个以上 files 共享同一个 hash 就是dup, 然后返回 list<list>

    然后我指出会有hash collision, 有的话要在用另一个 hash algo 去比较,有很多问题是在 follow up 才想到

    1. 有些file 没有 permission 去访问, 会有 exception
    2. 递归可能导致 stack overflow, 所以应该用 iterator


  • 什么叫dup files? 文件名一样,context 一样?还是修改日期,权限等所有的meta data都一样?



  • @wuyuzhe1989 好问题,这个就要你先定义好



  • 我能想到用HashSet进行dup detection(Hash collision在hashset类里面解决), iterate所有file(用递归吧,文件系统是树结构)去检查当前的文件是否存在于当前的HashSet中。 HashSet的hash function与要求有关,把所有判断same的criteria都考虑在hash function里。



  • @wuyuzhe1989 恩恩 思路很棒的呢,我觉得能想到permission就很好



  • 不过要是分布式文件系统的话,应该直接懵逼了


登录后回复
 

与 BitTiger Community 的连接断开,我们正在尝试重连,请耐心等待