查看: 2667|回复: 6
收起左侧

Microsoft(3) 最长重复子串

|只看干货 |刷题
头像被屏蔽

分享帖子到朋友圈
wwwyhx | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽

上一篇:Zach(1) 刷屏问题
下一篇:Facebook(1) : 简单的计算程序
头像被屏蔽
 楼主| wwwyhx 2011-4-21 19:50:45 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

darksteel 2011-4-22 01:40:32 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (32)
 
 
0% (0)    👎
按照昨天那个thread里的说法,可以用后缀数组,然后对每两个相邻的suffix取LCA,最长的那个就是。
这题和昨天那个差不多,就是输入变成了一个串,并且出现次数限制放宽,用trie还是一样能做,但复杂度就是n^2了。后缀树感觉什么都能做到O(n)但太复杂就不说了。用nlogn的后缀数组应该是个不错的选择
回复

使用道具 举报

vvnesaa 2011-4-22 07:37:49 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (38)
 
 
0% (0)    👎
回复 2# wwwyhx

用trie tree也算么?
我以为n^2的算法都不行@@。。。
回复

使用道具 举报

头像被屏蔽
 楼主| wwwyhx 2011-4-22 20:09:50 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

sing1ee 2012-10-1 08:34:24 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (2)
 
 
0% (0)    👎
wwwyhx 发表于 2011-4-22 20:09
有种解法是把字符串所有后缀取出,排序放入一个一维数组,然后两两比较最大前缀。解决方案挺neat的,不知道 ...

再进一步,就是后缀数组了。不过,到这里,就足够解决这个问题了。
回复

使用道具 举报

wenqiang88 2015-9-18 01:45:37 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   95% (68)
 
 
4% (3)    👎
可以先找出所有后缀,然后排序,再求相邻的字符串的最大前缀
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

隐私提醒:
■拉群请前往同学同事飞友|拉群结伴版块,其他版块拉群,帖子会被自动删除
■论坛不能删帖,为防止被骚扰甚至人肉,不要公开留微信等联系方式,请以论坛私信方式发送。
■特定版块可以超级匿名:https://tools.1point3acres.com/thread
■其他版块匿名方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

>
快速回复 返回顶部 返回列表