2026年阿里巴巴编程挑战赛试题详解与解析.docxVIP

  • 1
  • 0
  • 约5.3千字
  • 约 14页
  • 2026-06-03 发布于福建
  • 举报

2026年阿里巴巴编程挑战赛试题详解与解析.docx

第PAGE页共NUMPAGES页

2026年阿里巴巴编程挑战赛试题详解与解析

第一部分:算法设计(共3题,每题15分,总分45分)

1.题目:字符串最长重复子串

问题描述:

给定一个非空字符串`s`,请找出其中最长的重复子串,并返回其长度。如果不存在重复子串,则返回0。

示例:

-输入:`s=abcabcabc`

-输出:`6`(最长重复子串为abcabc)

要求:

-时间复杂度:O(nlogn)

-空间复杂度:O(n)

答案:

python

deflongest_repeating_substring(s:str)-int:

n=len(s)

left,right=1,n

result=0

whileleft=right:

mid=(left+right)//2

ifhas_repeating_substring(s,mid):

result=mid

left=mid+1

else:

right=mid-1

returnresult

defhas_repeating_substring(s:str,length:int)-bool:

seen=set()

foriinrange(len(s)-length+1):

substring=s[i:i+

文档评论(0)

1亿VIP精品文档

相关文档