由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 大文件去重复,有什么好办法么
相关主题
同学今天面AMAZON到一个题目不会 问我。我来这问一下Google店面刚结束
合并two big sorted filesBloomberg面经(onsite)
一道面试题,请大家给些意见贡献BB二进宫的电面面经
[Google算法题] reconstruct sector求问传说中的800题怎么找
探讨加请教:我工作中的一道题G家店面题
发个我总结的unix常用命令CS intern面试经验
A家电面常见的string hash function
如果python command line positional arguments 里有些是运算G家onsite面经
相关话题的讨论汇总
话题: 文件话题: 重复话题: md5话题: value话题: duplicate
进入JobHunting版参与讨论
1 (共1页)
m**q
发帖数: 189
1
就是下面facebook面经的第4题。
想到的笨办法就是先排序再去重,或者用一个hash table记录。
觉得都不是最优的解法。
求思路
littlebolt (i love bolt) 于 (Thu Jun 16 14:13:42 2011, 美东) 提到:
签了nda,phone和onsite写一起了
1.把一个字符串转成float,字符串可能是负的一百点三还有个指数E-09这样的
2.反转单链表..
3.给一个整数,求next permutation 就是数字组成一样的 但是比这个数大的最小的一
个数
4.一个很大的文件 怎么去掉duplicate
5. circular sorted array找元素
6.分层打印tree
7.一个字符串,每个字符可以替换成好多其他字符,打印所有可能
8.很简单的一个题,就是会用vector, set, map, pair这些玩意就行了
9.应该还有一个题,不难,但是怎么都想不起来了...
效率很高,拒信很快,move on啦~~
f**********t
发帖数: 1001
2
抛砖,我的2 cent.
基本思路:用hash和MD5。
1. 把大文件file1里的每一行做MD5。重复行的MD5会相同。把所有(line, MD5 value)
写入另一个文件file2。
2. 可能另一个文件file2特别大,不能一次读入内存。这时可以把它分成若干个小的。
比如我们想把它分成8个小的,则根据MD5 value的后三位,分到第0,1,2,。。。7个
文件。这时重复的行一定在相同的小文件中。
3. 这8个文件都可以一次读入内存。对于每个文件:
count重复的行,可用map/hashmap数据结构。(8个文件中,重复的行一定不会跨越
两个文件)。把所有重复的行写入文件file3
4. 根据file1和file3,去掉所有重复的行。把不重复的写入fileDst。
呼唤更好的解法 =)

【在 m**q 的大作中提到】
: 就是下面facebook面经的第4题。
: 想到的笨办法就是先排序再去重,或者用一个hash table记录。
: 觉得都不是最优的解法。
: 求思路
: littlebolt (i love bolt) 于 (Thu Jun 16 14:13:42 2011, 美东) 提到:
: 签了nda,phone和onsite写一起了
: 1.把一个字符串转成float,字符串可能是负的一百点三还有个指数E-09这样的
: 2.反转单链表..
: 3.给一个整数,求next permutation 就是数字组成一样的 但是比这个数大的最小的一
: 个数

f**********t
发帖数: 1001
3
补充一下。刚才是假设file1非常非常大。如果再小点,可以用hash+bitmap。

【在 f**********t 的大作中提到】
: 抛砖,我的2 cent.
: 基本思路:用hash和MD5。
: 1. 把大文件file1里的每一行做MD5。重复行的MD5会相同。把所有(line, MD5 value)
: 写入另一个文件file2。
: 2. 可能另一个文件file2特别大,不能一次读入内存。这时可以把它分成若干个小的。
: 比如我们想把它分成8个小的,则根据MD5 value的后三位,分到第0,1,2,。。。7个
: 文件。这时重复的行一定在相同的小文件中。
: 3. 这8个文件都可以一次读入内存。对于每个文件:
: count重复的行,可用map/hashmap数据结构。(8个文件中,重复的行一定不会跨越
: 两个文件)。把所有重复的行写入文件file3

W**********r
发帖数: 8927
4
用一个Hashmap就够了,整行做Key(如果把空格等考虑进去的话,否则过滤掉)。每读一行,查一下是不是已经在Hashmap里,不在就写入新文件并加入Hashmap,否则Skip。O(n) -- n是行数
w*****3
发帖数: 101
5
排序是王道吧
f****4
发帖数: 1359
6
特别是大数据的情况下
即hash等无法保存在内存中的时候

【在 w*****3 的大作中提到】
: 排序是王道吧
z*******y
发帖数: 578
7
如果文件很大,内存装不下 先排序(external sorting),然后用merge两个sorted
array 类似的方法(不用merge)找出重复即可。
觉得这个问题关键在两个地方:
一个是文件很大 -- external sorting
另一个就是排好序后用类似merge的方法 找重复
f**********t
发帖数: 1001
8
好像G的面经上还有不允许sort的情况。见第5题。
不过大家的回答提醒了我,要和面官讨论是否可以sort。
发信人: blackhorsezx (提供美中快递), 信区: JobHunting
标 题: Google店面刚结束
关键字: 。
发信站: BBS 未名空间站 (Thu Oct 21 10:59:53 2010, 美东)
1. what have you done recently at work? and which was the most proud thing
you have done
2. implement a hashtabel in pseudocode
3. how to delete duplicate lines (both verbal and pseudocode)
4. after we enter a url in the browser and before we get the page, what
happened?
5. if we have 200 million GB of lines, but we have only 1 GB of memory, how
to remove the duplicate lines? no sorting allowed.(这个题我没答上来....大家
谁可以说说怎么答)
s*****n
发帖数: 5488
9
trie.国内的小孩还是能牛逼啊。

【在 f**********t 的大作中提到】
: 好像G的面经上还有不允许sort的情况。见第5题。
: 不过大家的回答提醒了我,要和面官讨论是否可以sort。
: 发信人: blackhorsezx (提供美中快递), 信区: JobHunting
: 标 题: Google店面刚结束
: 关键字: 。
: 发信站: BBS 未名空间站 (Thu Oct 21 10:59:53 2010, 美东)
: 1. what have you done recently at work? and which was the most proud thing
: you have done
: 2. implement a hashtabel in pseudocode
: 3. how to delete duplicate lines (both verbal and pseudocode)

q****x
发帖数: 7404
10
md5 is a hash.

【在 f**********t 的大作中提到】
: 抛砖,我的2 cent.
: 基本思路:用hash和MD5。
: 1. 把大文件file1里的每一行做MD5。重复行的MD5会相同。把所有(line, MD5 value)
: 写入另一个文件file2。
: 2. 可能另一个文件file2特别大,不能一次读入内存。这时可以把它分成若干个小的。
: 比如我们想把它分成8个小的,则根据MD5 value的后三位,分到第0,1,2,。。。7个
: 文件。这时重复的行一定在相同的小文件中。
: 3. 这8个文件都可以一次读入内存。对于每个文件:
: count重复的行,可用map/hashmap数据结构。(8个文件中,重复的行一定不会跨越
: 两个文件)。把所有重复的行写入文件file3

z*******h
发帖数: 346
11
hadoop map/reduce
mapper: value -> (value, 1)
reducer: value, iterator -> value
can process tera bytes of data.

【在 m**q 的大作中提到】
: 就是下面facebook面经的第4题。
: 想到的笨办法就是先排序再去重,或者用一个hash table记录。
: 觉得都不是最优的解法。
: 求思路
: littlebolt (i love bolt) 于 (Thu Jun 16 14:13:42 2011, 美东) 提到:
: 签了nda,phone和onsite写一起了
: 1.把一个字符串转成float,字符串可能是负的一百点三还有个指数E-09这样的
: 2.反转单链表..
: 3.给一个整数,求next permutation 就是数字组成一样的 但是比这个数大的最小的一
: 个数

1 (共1页)
进入JobHunting版参与讨论
相关主题
G家onsite面经探讨加请教:我工作中的一道题
吐槽个烙印面试官 (转载)发个我总结的unix常用命令
今天的校园面试A家电面
给定字符串,求其不出现重复字符的子字符串的最大长度如果python command line positional arguments 里有些是运算
同学今天面AMAZON到一个题目不会 问我。我来这问一下Google店面刚结束
合并two big sorted filesBloomberg面经(onsite)
一道面试题,请大家给些意见贡献BB二进宫的电面面经
[Google算法题] reconstruct sector求问传说中的800题怎么找
相关话题的讨论汇总
话题: 文件话题: 重复话题: md5话题: value话题: duplicate