由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 字典里找子串怎么解?generalized suffix tree?
相关主题
面试中遇到suffix tree / trie这种题,需要自己实现吗?trie vs suffix tree
急问,Boggle (crossword)的解题思路?请推荐好的快速教程关于B+, red-black tree, trie...
问道老题suffix tree有必要搞懂吗?
请问各位大牛,如何实现DAWG?on-site的时候Trie和suffix tree会考coding吗?
fb 实习店面,第一题就来个hard的,算被黑吗?问一个老题 longest palindrome
有没有遇到让当场写一个suffix tree或者automaton的?bloomberg onsite & offer
有没有大牛总结一下trie, suffix tree, suffix array, B+ tree各自应用在哪些问题。最短唯一子串问题
什么时候用SUFFIX TREE,什么时候用TRIE攒RP,TripAdvisor面经
相关话题的讨论汇总
话题: 子串话题: suffix话题: tree话题: 字典话题: trie
进入JobHunting版参与讨论
1 (共1页)
y*****i
发帖数: 141
1
比如已知一个含有N个word的字典,现在随便给一个string,要找出所有包含这个
string作为子串的word。这种是用suffix tree来做吗?有更好写的方法吗?谢谢
y*****i
发帖数: 141
2
自己顶一下。
KMP不适合多次查询的情况,Aho-Corasick适合查前缀而不是任意位置的子串,所以只
能是suffix tree吧?
r*********n
发帖数: 4553
3
为什么KMP不适合呢?KMP只学要预处理一次pattern,然后用生成的dfa去查每个word
s*******s
发帖数: 1031
4
应该是用prie。

【在 y*****i 的大作中提到】
: 比如已知一个含有N个word的字典,现在随便给一个string,要找出所有包含这个
: string作为子串的word。这种是用suffix tree来做吗?有更好写的方法吗?谢谢

l**********r
发帖数: 4612
5
prie是什么

【在 s*******s 的大作中提到】
: 应该是用prie。
s*******s
发帖数: 1031
6
TRIE
http://en.wikipedia.org/wiki/Trie
sorry for the typo

【在 l**********r 的大作中提到】
: prie是什么
y*****i
发帖数: 141
7
Prie是啥?没搜到。对string matching算法很不熟,唉。

【在 s*******s 的大作中提到】
: 应该是用prie。
y*****i
发帖数: 141
8
哦。got it。
但是trie能用来搜子串吗?比如wiki上这个例子,ten在这个字典里,现在如果要搜"en
",trie就不行了吧。

【在 s*******s 的大作中提到】
: TRIE
: http://en.wikipedia.org/wiki/Trie
: sorry for the typo

s*******s
发帖数: 1031
9
你说得对,我的想法错了。呵呵

en

【在 y*****i 的大作中提到】
: 哦。got it。
: 但是trie能用来搜子串吗?比如wiki上这个例子,ten在这个字典里,现在如果要搜"en
: ",trie就不行了吧。

y*****i
发帖数: 141
10
字典是已知的,pattern是未知的,且多个。这样是不是KMP就不如suffix tree了。每
一个新pattern都得重新搜一次。
就是做题的时候suffix tree感觉比KMP难写多了。。。

【在 r*********n 的大作中提到】
: 为什么KMP不适合呢?KMP只学要预处理一次pattern,然后用生成的dfa去查每个word
相关主题
有没有遇到让当场写一个suffix tree或者automaton的?trie vs suffix tree
有没有大牛总结一下trie, suffix tree, suffix array, B+ tree各自应用在哪些问题。请推荐好的快速教程关于B+, red-black tree, trie...
什么时候用SUFFIX TREE,什么时候用TRIEsuffix tree有必要搞懂吗?
进入JobHunting版参与讨论
c********p
发帖数: 1969
11
一涉及这个的题,我就彻底无助。。。。
J****3
发帖数: 427
12
为啥pattern这里是未知的啊? 不是给定一个string 去字典里挨个找的吗?这个
string不就是pat? 字典的是txt?

【在 y*****i 的大作中提到】
: 字典是已知的,pattern是未知的,且多个。这样是不是KMP就不如suffix tree了。每
: 一个新pattern都得重新搜一次。
: 就是做题的时候suffix tree感觉比KMP难写多了。。。

y*****i
发帖数: 141
13
my bad. 没表述清楚。不是给定一个。是每次给一个。。就像一个真的dict一样。今天
你想查这个词,明天想查那个词,只不过现在我们查的是各种子串们。

【在 J****3 的大作中提到】
: 为啥pattern这里是未知的啊? 不是给定一个string 去字典里挨个找的吗?这个
: string不就是pat? 字典的是txt?

g**G
发帖数: 767
14
如果没理解错的话,应该是trie而不是suffix tree做
trie一般用于这种类似字典的查找,suffix tree一般用来重复查找同一个字符串的子串

【在 y*****i 的大作中提到】
: 比如已知一个含有N个word的字典,现在随便给一个string,要找出所有包含这个
: string作为子串的word。这种是用suffix tree来做吗?有更好写的方法吗?谢谢

l*******0
发帖数: 63
15
我觉得trie不太行吧?trie是找前缀的,但他这个是要找子串。比如字典里有abcd,
mcd, ncd, 然后要找所有含cd的,那trie岂不是一个都找不出来。可是如果是suffix
tree的话 难道为每一个字典里的string都建一课suffix tree?我觉得可能用那个
rolling hash比较不错。

子串

【在 g**G 的大作中提到】
: 如果没理解错的话,应该是trie而不是suffix tree做
: trie一般用于这种类似字典的查找,suffix tree一般用来重复查找同一个字符串的子串

r*********n
发帖数: 4553
16
那可以把所有词的suffix都放到trie里面去,这样查找速度最快,但是预处理复杂度很
高,不过如果查找次数很多,预处理的overhead平均下来也就不算什么了。

【在 y*****i 的大作中提到】
: my bad. 没表述清楚。不是给定一个。是每次给一个。。就像一个真的dict一样。今天
: 你想查这个词,明天想查那个词,只不过现在我们查的是各种子串们。

p*****2
发帖数: 21240
17
如果允许preprocess可以做到O(1)
k*j
发帖数: 153
18
http://www.cs.cmu.edu/~ckingsf/bioinfo-lectures/suffixtrees.pdf
PAGE 44
Determine the strings in a database {S1, S2, S3, ..., Sm} that contain
query string q:
Build generalized suffix tree for {S1, S2, S3, ..., Sm}
Follow the path for q in the suffix tree.
Suppose you end at node u: traverse the tree below u, and
output i if you find a string containing #i
f*******b
发帖数: 520
19

赞同!

【在 l*******0 的大作中提到】
: 我觉得trie不太行吧?trie是找前缀的,但他这个是要找子串。比如字典里有abcd,
: mcd, ncd, 然后要找所有含cd的,那trie岂不是一个都找不出来。可是如果是suffix
: tree的话 难道为每一个字典里的string都建一课suffix tree?我觉得可能用那个
: rolling hash比较不错。
:
: 子串

1 (共1页)
进入JobHunting版参与讨论
相关主题
攒RP,TripAdvisor面经fb 实习店面,第一题就来个hard的,算被黑吗?
这个题有什么好方法吗?有没有遇到让当场写一个suffix tree或者automaton的?
问一道string match的题目 出自glassdoor facebook版有没有大牛总结一下trie, suffix tree, suffix array, B+ tree各自应用在哪些问题。
一个字典字符串查询题目,大牛看看如何解?什么时候用SUFFIX TREE,什么时候用TRIE
面试中遇到suffix tree / trie这种题,需要自己实现吗?trie vs suffix tree
急问,Boggle (crossword)的解题思路?请推荐好的快速教程关于B+, red-black tree, trie...
问道老题suffix tree有必要搞懂吗?
请问各位大牛,如何实现DAWG?on-site的时候Trie和suffix tree会考coding吗?
相关话题的讨论汇总
话题: 子串话题: suffix话题: tree话题: 字典话题: trie