由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 借人气请教个G题
相关主题
电面不好,求bless。这题怎么答?问一道google统计句子相似度的问题
L的onsite冤了请教一道电面算法题
弱问一道G家电面题Leetcode一题(非OJ)
一个问题, 好难好难?贡献一个中型软件公司面经
单词提示是怎么实现的?问一道string match的题目 出自glassdoor facebook版
boggle的复杂度facebook一题
rocket fuel 面试题问道题
list of words找两个没有相同字母的string S和T并且使得S.length()*T.length()最大面试中遇到suffix tree / trie这种题,需要自己实现吗?
相关话题的讨论汇总
话题: 单词话题: 句子话题: 人气话题: words话题: 每个
进入JobHunting版参与讨论
1 (共1页)
h****n
发帖数: 1093
1
给一个list of sentences, 然后找出一个pair,common words 最大。举例:
1. This is a good day
2. This is a bad day
3. That was good day
返回1和2,因为有四个common words
j******a
发帖数: 55
2
牛人准备再战江湖啦?
c***0
发帖数: 449
3
是不是根据每个words建立trie. 建立的同时标记是来自第几句话。并且更新和第几句
话有share。建好了trie也就知道答案了

【在 h****n 的大作中提到】
: 给一个list of sentences, 然后找出一个pair,common words 最大。举例:
: 1. This is a good day
: 2. This is a bad day
: 3. That was good day
: 返回1和2,因为有四个common words

b*********t
发帖数: 170
4
trie建好之后只知道每个word在哪些sentence出现过,要知道哪两个sentence的共同
word最多,还是要再遍历一遍。而且还要考虑sentence里面有word重复的情况。
我用hashmap做了一下,复杂度是O(n^2 * k), n是sentence个数,k是sentence长度
。感觉应该有更快的算法。

【在 c***0 的大作中提到】
: 是不是根据每个words建立trie. 建立的同时标记是来自第几句话。并且更新和第几句
: 话有share。建好了trie也就知道答案了

f******n
发帖数: 279
5
mark
o***g
发帖数: 2784
6
这样行么?
以每个单词做索引,值是出现在第几个句子。需要所有句子轮一圈:
This: 1, 2
good: 1, 3
....
以句子序号pair做索引,值是计数。每个单词后面的所有序号做全排列:
1, 2 : 4
1, 3 : 0
2, 3 : 2
.....
最后轮一圈上面的数据,找到最大的。
这个复杂度是多少?

【在 h****n 的大作中提到】
: 给一个list of sentences, 然后找出一个pair,common words 最大。举例:
: 1. This is a good day
: 2. This is a bad day
: 3. That was good day
: 返回1和2,因为有四个common words

s*******y
发帖数: 45
7
我写了下code, http://codepad.org/bqm91IMF
不知道这个思路对不对啊?
有什么好办法实现提取一个sentence里面的words吗?面试中需要写这吗?
p********n
发帖数: 165
8
用rabin-carp的方法 可以把每个单词都hash成一个数字,这样比较起来比较快,
至少可以优化成 O(n^2*m) m是平均每个句子里单词的个数, 稍微好一些。
另外一个优化: hash 每个句子的单词的时候,统计每个句子的单词数,并按照单词数
排序O(nlog(n))
这样,可以从第二最长的句子开始往后循环, 每次循环,假设到了第i个句子,要和所
有1...i-1的句子比,如果到目前为止share的单词数最大的solution >= 第i个句子的
整个单词数的时候,就可以中止程序。 算是一个early termination.

【在 b*********t 的大作中提到】
: trie建好之后只知道每个word在哪些sentence出现过,要知道哪两个sentence的共同
: word最多,还是要再遍历一遍。而且还要考虑sentence里面有word重复的情况。
: 我用hashmap做了一下,复杂度是O(n^2 * k), n是sentence个数,k是sentence长度
: 。感觉应该有更快的算法。

j*******p
发帖数: 73
9
Bloom filter?
s******y
发帖数: 936
10
这是google 自家算法:http://en.wikipedia.org/wiki/Inverted_index
x******0
发帖数: 178
11
用了inverted index之后不是还要用O(N^2×t) 遍历所有的pair和word,t是word数
目,吗?
o***g
发帖数: 2784
12
看我给的思路
其实是mapreduce的思路
当然我的办法不一定是最优的,或者最可行的,思路大概就这样

【在 x******0 的大作中提到】
: 用了inverted index之后不是还要用O(N^2×t) 遍历所有的pair和word,t是word数
: 目,吗?

S******1
发帖数: 216
13
取每个单词为一个维度,如果有n个单词那每个句子都是一个n维的vector [0,0,1,1,0
...1,0], 定义vector的距离就是都为1的维度的个数,找距离最近的pair.
是不是可以用类似于聚类的算法做近似计算?
x*******9
发帖数: 138
14
设n个string,每个string有m个单词。
最暴力的方法不就是n**2次比较,每次比较的时间复杂度为O(m)
所以总时间复杂度为O(n**2 * m)
LS大大们说的方法貌似没有超过这个纯暴力的吧。。。
1 (共1页)
进入JobHunting版参与讨论
相关主题
面试中遇到suffix tree / trie这种题,需要自己实现吗?单词提示是怎么实现的?
攒RP发A家第一轮电面boggle的复杂度
google电面杯具,贡献题目rocket fuel 面试题
现场让写KMPlist of words找两个没有相同字母的string S和T并且使得S.length()*T.length()最大
电面不好,求bless。这题怎么答?问一道google统计句子相似度的问题
L的onsite冤了请教一道电面算法题
弱问一道G家电面题Leetcode一题(非OJ)
一个问题, 好难好难?贡献一个中型软件公司面经
相关话题的讨论汇总
话题: 单词话题: 句子话题: 人气话题: words话题: 每个