为了账号安全,请及时绑定邮箱和手机立即绑定

生成给定字符串的所有唯一子字符串

生成给定字符串的所有唯一子字符串

慕少森 2019-10-26 13:38:55
给定一个string s,生成一组所有唯一子字符串的最快方法是什么?示例:因为str = "aba"我们会得到substrs={"a", "b", "ab", "ba", "aba"}。天真的算法是遍历整个字符串,1..n在每次迭代中生成长度的子字符串,从而产生一个O(n^2)上限。更好的约束可能吗?(从技术上讲这是家庭作业,因此也欢迎只使用指针)
查看完整描述

3 回答

?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

正如其他张贴者所说的,给定字符串可能有O(n ^ 2)个子字符串,因此将它们打印出来的速度不能比这快。但是,存在可以在线性时间内构建的集合的有效表示形式:后缀树。


查看完整回答
反对 回复 2019-10-26
?
达令说

TA贡献1821条经验 获得超6个赞

这样做没有比O(n 2)快的方法,因为一个字符串中总共有O(n 2)个子字符串,因此,如果必须全部生成它们,则它们的数量将是n(n + 1) / 2最坏的情况,因此上下限的为O(n 2) Ω(N 2)。

查看完整回答
反对 回复 2019-10-26
  • 3 回答
  • 0 关注
  • 724 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信