求各位大佬看看这道题有没有非暴力解法

最近在刷面经,有一道把我难住了,只想到暴力解检测超时,想问问各位大佬有没有非暴力解法

我们定义两个字符串 S 和 T 的后缀匹配(suffix match)为两个字符串共有的最长后缀的长度。

例如:suffixmatch("xyz", "wyz") == 2,因为这两个字符串共有的后缀是“yz”;而 suffixmatch("aaa", "aaab") == 0,因为这两个字符串的最后一个字符不同,因此共有的后缀是空字符串。

请完成函数 suffixSum,该函数计算字符串 S 与它的每一个前缀(包括字符串本身作为最长前缀)的后缀匹配之和。

比如输入是 ababaa
输出是 9

字符串的前缀是:ababaa、ababa、abab、aba、ab 和 a。每个前缀与字符串 ababaa 的后缀匹配分别是 6、1、0、1、0、1。因此输出结果是 6 + 1 + 0 + 1 + 0 + 1 = 9。
全部评论
看起来是后缀数组
点赞 回复 分享
发布于 09-01 10:58 湖北
后缀数组的思想吧,ababaa按照反向的后缀排序(前缀从右往左比字典序),比如ababaa的前缀排序下来是a,ababaa,aba,ababa,ab,abab,接着从右往左枚举ababaa,二分查找最后一位为a的数量,再最后一位得到的lr基础上继续二分倒数第二位为a的数量,。。。求和
点赞 回复 分享
发布于 09-01 14:08 天津
天翼云科技有限公司
校招火热招聘中
官网直投

相关推荐

08-25 20:44
门头沟学院 Java
点赞 评论 收藏
分享
我是24届的校招生7月份入职,岗位是嵌入式软件开发工程师(非科班,我的专业是数学),我谈一谈我的入职感受.首先是关于面试,我是两轮技术面,一轮hr面.关于技术面,具体的问题我已经记不太清了,印象比较深刻的是一个关于链表的操作和函数调用的执行过程是怎样的.当然也有一些问题回答不上来,整个过程中面试官都会耐心的引导你.hr面主要是给你讲解薪资的构成以及福利待遇等等,hr小姐姐也非常和蔼.我选择睿联最重要的原因就是因为在面试的过程中面试官给我的印象非常好,后面入职问了很多同事,他们也有这样的感觉.在拿到offer过后,会有一个新人群,里面会分各种各样的小组,每个月里面都会有一些简单的活动,排名第一的小组会获得入职的额外奖励,很可惜我们组没有拿到第一,这一届入职的奖励是人均200多的四海一家自助(馋).其次是入职过后,会给你分配一个两个导师,一个是你的leader,负责向他汇报你的工作,另外一个就是生活中的导师,会为你解答一些问题.因为我是非科班的,在前面几周学习的过程中确实遇到了一些问题,首先是我的组长真的是一个技术大牛,会给你耐心的讲解,而且我觉得他的效率极高,其次是和我一起新入职的同事,我觉得他们给我的帮助也非常大,而且性格各方面都非常的好.公司提供无限量的零食,并且每两周都会有下午茶(没入职的时候觉得没啥,入职了过后是真香),还有各种各样的俱乐部,我比较喜欢羽毛球,公司每周都会包场地让我们去追求自己的爱好,这是我觉得非常不错的地方.最后我们公司的招聘开始了,欢迎各位找我内推:⭐睿联技术2025届校园招聘正式开启!⭐深圳市睿联技术股份有限公司,多年来专注于智能家居与互联网云服务领域。公司已荣获国家高新技术企业、深圳市专精特新企业认证。超多岗位火热开放招聘中,一起加入我们吧!【在这里,你将获得】精彩的职业发展、丰富的学习资源、有爱的企业文化🎓【招聘对象】2025届毕业生(2024.9-2025.8)💼【职位类别】产品研发类、销售运营类、市场推广类、技术支持类、职能类📍【工作地点】深圳、武汉🔗【网申渠道】https://hr.reolink.com.cn/👉【内推码】NTA7zTC
深圳市睿联技术股份有限公司
|
校招
|
29个岗位
点赞 评论 收藏
分享
1 2 评论
分享
牛客网
牛客企业服务