有个按字典序放置的字典,大小是N,求出该字典中最长的词链,词链的定义是一个连续的单词表,使得前面的单词是后面单词的前缀,如ab,abc,abd那么词链就是ab,abc。最笨的方法很好像,复杂度是O(N*max_len(word)),在他的提醒下,电面完后才清晰,可惜了,可以这样做,用一个字典树来存放前i个单词,最单词末尾做标记,记录该单词的编号,每次在字典树插入当前单词的时候,在树上遍历,当符合这个条件时,记录最长词链长度,但走过的带有标记的单词词尾中的序号是连续的话,就更新,否则就不更新,这样下来就可以把复杂度降到O(size(dic))了
最长词链
最新推荐文章于 2022-06-15 10:45:20 发布