- 1
- 0
- 约5.85千字
- 约 17页
- 2026-05-19 发布于福建
- 举报
第PAGE页共NUMPAGES页
2026年微软件工程师面试题目及答案
一、编程题(共5题,每题20分)
1.题目(20分):
给定一个非空字符串`s`,最多删除`k`个字符,使得剩余字符串的最长子串不包含重复字符。请返回该最长子串的长度。
示例:
输入:s=abcabcbb,k=2
输出:5
解释:删除两个字符后,最长子串为abcba。
答案:
python
deflength_of_longest_substring(s:str,k:int)-int:
ifnotsork0:
return0
char_count={}
left=0
max_length=0
max_count=0#最大重复字符的数量
forrightinrange(len(s)):
char=s[right]
char_count[char]=char_count.get(char,0)+1
max_count=max(max_count,char_count[char])
如果窗口内重复字符数量超过k,移动左指针
if(right-left+1)-max_countk:
char_count[s[left]]-=1
left+=1
max_length=max(max_leng
原创力文档

文档评论(0)