2026年微软件工程师面试题目及答案.docxVIP

  • 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)

1亿VIP精品文档

相关文档