u*****o 发帖数: 1224 | 1 60分钟就一道题,design一个function to find duplicate files
input是一个path 比如 C: or /home/users/anne
这个function会return所有有duplicates的file
column 1: file name
column 2: file size...
column 3: number of files with the same file contents
column 4: total space would be saved...
好难哪。。想了半天就想了个用sort先sort size,file size一样的再进行下一步比较。
比较contents得用hash吧,然后...就没有然后了。。。
对这种design的题完全傻眼呀。。。算了爱咋咋地吧。 |
b**********5 发帖数: 7881 | 2 什么叫design一个function, 不要写code么? 为什么没有了, 你想的挺对啊。
size一先sort, 一样, 再比较contents, 然后就可以output那些stats了啊 |
u*****o 发帖数: 1224 | 3 要写code呀,而且得先写file这个class,再写solution class, 我在60分钟内根本没
写完,后面还有一大堆part2-part4,我说的这个是part1而已呀,后面的看都没看清。
坑爹呀,真的有人能在60分钟内写完所有吗。。。
【在 b**********5 的大作中提到】 : 什么叫design一个function, 不要写code么? 为什么没有了, 你想的挺对啊。 : size一先sort, 一样, 再比较contents, 然后就可以output那些stats了啊
|
l*n 发帖数: 529 | 4 你已经设计好了啊,就因为要用hash就“爱咋咋地”?
ps.文件大小基本可以不用考虑,反而增加麻烦,有了hash直接比较就是了。每个文件
每行搞个hash,然后综合起来弄个hash。先比较文件的hash,如果一样再回头去比较每
一行的hash。
edit:
搜了一下,文件全文读取太浪费,这个方案不错。
http://stackoverflow.com/a/1761623/2073130 |
l*n 发帖数: 529 | 5 file class也要你自己写?不是吧。
【在 u*****o 的大作中提到】 : 要写code呀,而且得先写file这个class,再写solution class, 我在60分钟内根本没 : 写完,后面还有一大堆part2-part4,我说的这个是part1而已呀,后面的看都没看清。 : 坑爹呀,真的有人能在60分钟内写完所有吗。。。
|
b**********5 发帖数: 7881 | 6 这个file class, 不就是size, name, 然后就是content。
【在 u*****o 的大作中提到】 : 要写code呀,而且得先写file这个class,再写solution class, 我在60分钟内根本没 : 写完,后面还有一大堆part2-part4,我说的这个是part1而已呀,后面的看都没看清。 : 坑爹呀,真的有人能在60分钟内写完所有吗。。。
|
b**********5 发帖数: 7881 | 7 不考虑, 怎么output那些stats?
【在 l*n 的大作中提到】 : 你已经设计好了啊,就因为要用hash就“爱咋咋地”? : ps.文件大小基本可以不用考虑,反而增加麻烦,有了hash直接比较就是了。每个文件 : 每行搞个hash,然后综合起来弄个hash。先比较文件的hash,如果一样再回头去比较每 : 一行的hash。 : edit: : 搜了一下,文件全文读取太浪费,这个方案不错。 : http://stackoverflow.com/a/1761623/2073130
|
l********r 发帖数: 140 | 8 有大牛看看吗?
My way is:
Go through all the files and create a hashtable: file-signature ==> a set of
the actually files. Only need to study the files in one set (they are more
likely to be the same).
This sounds like a coding question instead of any algorithm question? (
unless we need a really good way to get the file signature) |