由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 一道G家电面题
相关主题
Given large text, find min cover distance of n words题目是什么意思啊?how to design a digital dictionary
求助一道 Longest Common Substring 的变形面试题F M面经
问个anagram的算法题悲催的g onsite
关于leetcode的Scramble String问题FB面经
热腾腾的twitter电面经G家面经求指点--beanbun--G--dictionary
继续攒人品 报几家面经再爆个U家面经吧
发bloomberg面经 [电面,目测已挂,赞人品]讨论个狗狗的题?
请教2个 huge file的面试题longest common prefix 和 longest common substring
相关话题的讨论汇总
话题: common话题: letter话题: 单词话题: maxlen话题: string
进入JobHunting版参与讨论
1 (共1页)
l****1
发帖数: 33
1
假设字典有N个单词,求最大的: product = strlen(word1) * strlen(word2),
并且满足word1和word2没有common letter.
h*********a
发帖数: 1605
2
没有 common letter比较麻烦
A*********c
发帖数: 430
3
先把所有的单词排序得出anagram,因为单词不长,可以算constant,这步O(n)
然后再比较common letter是不是会好点,可以early stop。这步有没有比暴力更好的
方法?

【在 l****1 的大作中提到】
: 假设字典有N个单词,求最大的: product = strlen(word1) * strlen(word2),
: 并且满足word1和word2没有common letter.

f*****e
发帖数: 2992
4
用map
每个string用一个整数表示, 然后第二个表示max length。
判断两个string 是否相交,就为 i & j == 0.
在想能不能用二叉树表示,不相交的在左边,相交的在右边。就不知道是否平衡了。

【在 A*********c 的大作中提到】
: 先把所有的单词排序得出anagram,因为单词不长,可以算constant,这步O(n)
: 然后再比较common letter是不是会好点,可以early stop。这步有没有比暴力更好的
: 方法?

A*********c
发帖数: 430
5
嗯,用bit map表示单词,一个单词4 bytes,很高效,算相交的时候更快,就算O(n^2)
也可以接受。
感觉比anagram的想法好。

【在 f*****e 的大作中提到】
: 用map
: 每个string用一个整数表示, 然后第二个表示max length。
: 判断两个string 是否相交,就为 i & j == 0.
: 在想能不能用二叉树表示,不相交的在左边,相交的在右边。就不知道是否平衡了。

M*******a
发帖数: 1633
6
然后可以按照长度排序,大的算到小的
m**********g
发帖数: 153
7
是不是可以build trie, 得到26个子树的高度,然后求max product of the 26 number
?
M*******a
发帖数: 1633
8
恩,这个好,基本O(N*average_length_of_string + 26*26)

number

【在 m**********g 的大作中提到】
: 是不是可以build trie, 得到26个子树的高度,然后求max product of the 26 number
: ?

c********p
发帖数: 1969
9
mark
b***e
发帖数: 1419
10
Not working, cannot guarantee disjoint.

【在 M*******a 的大作中提到】
: 恩,这个好,基本O(N*average_length_of_string + 26*26)
:
: number

相关主题
继续攒人品 报几家面经how to design a digital dictionary
发bloomberg面经 [电面,目测已挂,赞人品]F M面经
请教2个 huge file的面试题悲催的g onsite
进入JobHunting版参与讨论
b***e
发帖数: 1419
11
如果N巨大的话,做exponential set pre-computing吧。假设alphabet只有26个字母,
需要64M个4 bytes. 不算太离谱.

【在 l****1 的大作中提到】
: 假设字典有N个单词,求最大的: product = strlen(word1) * strlen(word2),
: 并且满足word1和word2没有common letter.

t********e
发帖数: 344
12
这样找最长的words可以,但怎么保证没有common char?

number

【在 m**********g 的大作中提到】
: 是不是可以build trie, 得到26个子树的高度,然后求max product of the 26 number
: ?

l****1
发帖数: 33
13
我用查表来算是否两个单词有common letter, 然后用O(N^2)来比较。估计
过不了电面
l****f
发帖数: 6
14
trie?
w********0
发帖数: 377
15
能否站看说说如何用一个整数表示一个string,如果string非常长,一个整数的长度一
定会够吗?谢谢。想了很久,没想明白。

【在 f*****e 的大作中提到】
: 用map
: 每个string用一个整数表示, 然后第二个表示max length。
: 判断两个string 是否相交,就为 i & j == 0.
: 在想能不能用二叉树表示,不相交的在左边,相交的在右边。就不知道是否平衡了。

w********0
发帖数: 377
16
请教如何一个单词用4 byte表示?单词很长,也可以做到吗?谢谢

2)

【在 A*********c 的大作中提到】
: 嗯,用bit map表示单词,一个单词4 bytes,很高效,算相交的时候更快,就算O(n^2)
: 也可以接受。
: 感觉比anagram的想法好。

f*****e
发帖数: 2992
17
就是用一个26bit的数字表示有没有相应的character。

【在 w********0 的大作中提到】
: 能否站看说说如何用一个整数表示一个string,如果string非常长,一个整数的长度一
: 定会够吗?谢谢。想了很久,没想明白。

P****d
发帖数: 137
18
这个题是C特有的吗?strlen是求字符串长度吗?如果是java是不是直接遍历所有的元
素用word1.length()*word2.length()看最后哪个乘机大就行了是么?有没有共同元素
对求string长度有什么影响吗?

【在 l****1 的大作中提到】
: 假设字典有N个单词,求最大的: product = strlen(word1) * strlen(word2),
: 并且满足word1和word2没有common letter.

t**8
发帖数: 4527
19
good

2)

【在 A*********c 的大作中提到】
: 嗯,用bit map表示单词,一个单词4 bytes,很高效,算相交的时候更快,就算O(n^2)
: 也可以接受。
: 感觉比anagram的想法好。

w****a
发帖数: 710
20
后来请教了别人,这题可以对字典建后缀树,lca为root的两个叶节点就是没有common
letter的。然后从root找,两条最长的到叶子节点的path就是了。
相关主题
FB面经讨论个狗狗的题?
G家面经求指点--beanbun--G--dictionarylongest common prefix 和 longest common substring
再爆个U家面经吧问个Longest Common Substring的问题
进入JobHunting版参与讨论
x****g
发帖数: 1512
21
“lca为root的两个叶节点就是没有common : letter的”
这个结论不对?只能判出无公共前缀,而不是无common letter.

common

【在 w****a 的大作中提到】
: 后来请教了别人,这题可以对字典建后缀树,lca为root的两个叶节点就是没有common
: letter的。然后从root找,两条最长的到叶子节点的path就是了。

d*****1
发帖数: 263
22
先sort (word) 就好。
a**********s
发帖数: 588
23
假设有两个string,一个是abc,另一个是b.
你说的suffix tree应该怎样的?

common

【在 w****a 的大作中提到】
: 后来请教了别人,这题可以对字典建后缀树,lca为root的两个叶节点就是没有common
: letter的。然后从root找,两条最长的到叶子节点的path就是了。

d*****1
发帖数: 263
24
后缀树我没想明白,我是用trie做的。 l 是单词长度。
假如每个单词都排序完毕(O(n * l(lg l)),应该是O(n)的复杂度。
(就是一个单词里,有重复的时候,需要另外处理)
例如 输入是 bbbc, 和bbc 就要另外加东西标识出来。
x*******6
发帖数: 262
25
后缀树理论建造需要n,再遍历所有internal node,每个internal node应该包含所有
经过这个node的string的信息,这样就能找到所有有common letter的string了。
x****g
发帖数: 1512
26
需要的是“没有common letter”。
无论字典树或者后缀树对于判定找出无common letter并不优。
将原来的s1....sn用26bit法转化成
A1.....An
对应的最大长度为: V1.....Vn
有两个好处:
1:判定无common letter即为:Ai & Aj == 0;
2:相同bit表示的不同字符串得到压缩,只需要记下长度最长的。
完了按Vn长度排序 N*Log(N)
V'n........V'1
A'n........A'1
从大到小搜索,如果Ai & Aj==0的话,L=V[i]*V[j].
那么大的那个下标就收缩到了k,V[k]>sqrt(L).
整体区间收缩到[l,r]满足
V[i]>V[l]
V[r]>V[j]
平均复杂度能N*Log(N)? ,最差当然还是N^2.
i =0;
j = n;
maxLen = 0;
highLen = INT_MAX;
lowLen = INT_MIN;
while(V[i]>sqrt(maxLen) && (i {
if(V[i] < highLen)
{
for(int k=i+1;klowLen;k++)
{
if(A[i] & A[k]==0)
{
maxLen=max(maxLen,V[i]*V[k]);
lowLen = V[k];
highLen =V[i];
j=k-1;
break;
}
}
}
i++;
}

【在 x*******6 的大作中提到】
: 后缀树理论建造需要n,再遍历所有internal node,每个internal node应该包含所有
: 经过这个node的string的信息,这样就能找到所有有common letter的string了。

g*******u
发帖数: 3948
27
这个现在比较直观
还有其他方法吗?
主要是 见完 最后找 product 还是个 N^2复杂度啊 这块能快吗?
大数据是不是就不行了 我觉得
因为这个题目肯定是面向大数据说的 小数据没意义 对吧

2)

【在 A*********c 的大作中提到】
: 嗯,用bit map表示单词,一个单词4 bytes,很高效,算相交的时候更快,就算O(n^2)
: 也可以接受。
: 感觉比anagram的想法好。

1 (共1页)
进入JobHunting版参与讨论
相关主题
longest common prefix 和 longest common substring热腾腾的twitter电面经
问个Longest Common Substring的问题继续攒人品 报几家面经
关于trie和binary search tree的疑问。发bloomberg面经 [电面,目测已挂,赞人品]
Amazon问题请教+电面经验请教2个 huge file的面试题
Given large text, find min cover distance of n words题目是什么意思啊?how to design a digital dictionary
求助一道 Longest Common Substring 的变形面试题F M面经
问个anagram的算法题悲催的g onsite
关于leetcode的Scramble String问题FB面经
相关话题的讨论汇总
话题: common话题: letter话题: 单词话题: maxlen话题: string