- 1
- 0
- 约5.3千字
- 约 14页
- 2026-06-03 发布于福建
- 举报
第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)