12
返回列表 发新帖
楼主: wwwyhx
跳转到指定楼层
上一主题 下一主题
收起左侧

Ananimous(3) 求m个字符串中重复n次字符串的最长的那个

 
🔗
danielgao 2011-4-21 03:06:25 | 只看该作者
全局:
本帖最后由 danielgao 于 2011-4-21 03:08 编辑
一直听说过后缀树和后缀数组,但没机会用,你这个方法想法上确实巧,非常值得借鉴。不过对于这道题我有点 ...
darksteel 发表于 2011-4-21 02:41



   恩,是我没说清楚,对于拼接可以这样解决,每个字符串后面加入结束符号,就是输入字串中不可能出现的,例如
输入是S1,S2,S3,
你可以用S1#1S2#2S3#3来连起来,这样基本上就能解决问题了。 如果要求刚好n次的话可以对每个i多做1次判断满足(i, i+n-1)最大,并且不等于(i, i+n)的就可以了
回复

使用道具 举报

🔗
darksteel 2011-4-21 03:35:54 | 只看该作者
全局:
回复 11# danielgao
这样应该就没问题了。以前从未对后缀树组的强大有感性认识,原来可以这么用,确实收获不少。
如果非得说还有什么concern的话,那就是拼接起来之后再建后缀数组,感觉上会有一些操作不是有效的,不知这样说对不对,就是会有因为拼接而多加出来的操作。不过由于数据结构本身的强大,应该能做到和trie的方法等同或更好。如果这题要求的是一个长串中出现n次的最长的子串,这个方法就再合适不过了。
   
回复

使用道具 举报

🔗
lambda2fei 2012-9-5 14:55:11 | 只看该作者
全局:
想了半天,居然忘记有后缀数组这个神器了。。
回复

使用道具 举报

🔗
CStick75 2012-9-6 17:40:40 | 只看该作者
全局:
后缀数组 + LCP , 如果LCP用线段树, 一遍扫过去求所有的LCP[l,l+m)   O(nlg(N))
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

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