2026年微软工程师面试题目.docxVIP

  • 0
  • 0
  • 约5.33千字
  • 约 16页
  • 2026-03-03 发布于福建
  • 举报

第PAGE页共NUMPAGES页

2026年微软工程师面试题目

一、编程题(共5题,每题10分,总分50分)

1.题目:

实现一个函数,输入一个字符串,返回该字符串中所有唯一字符的列表(不区分大小写)。例如,输入Hello返回[e,l],输入Program返回[g,m,r,a]。

要求:时间复杂度O(n),空间复杂度O(n)。

2.题目:

给定一个链表,判断链表是否存在环。如果存在,返回环的入口节点;如果不存在,返回null。

要求:不使用额外的空间。

3.题目:

实现一个无重复字符的最长子串查找函数。输入一个字符串,返回其最长无重复字符的子串长度。例如,输入abcabcbb返回3(对应子串abc),输入bbbbb返回1。

要求:时间复杂度O(n)。

4.题目:

设计一个LRU(最近最少使用)缓存系统。支持get和put操作。get返回键对应的值,如果不存在返回-1;put插入或更新键值对,如果缓存容量已满,则删除最近最少使用的项。

要求:get和put操作的时间复杂度均为O(1)。

5.题目:

给定一个非负整数数组,返回一个数组,其中每个元素是原数组中比它大的元素的数量。例如,输入[3,1,4,2]返回[2,3,1,0]。

要求:时间复杂度O(n)。

二、系统设计题(共2题,每题25分,总分50分)

1.题目:

设计一个高并发的短链接生成服务。要求:

-支持高并发访问,每秒处理数千次请求。

-链接长度尽可能短(如6位或8位短码)。

-支持自定义前缀(如`/abc123`)。

-需考虑分布式部署和缓存优化。

-提供幂等性保证(同一请求多次访问返回相同结果)。

2.题目:

设计一个分布式消息队列系统(如Kafka的简化版)。要求:

-支持至少1000个节点的水平扩展。

-保证消息的顺序性(同一生产者发送的消息按发送顺序存储和消费)。

-支持至少一次投递(不保证按序,但至少投递一次)。

-提供消费者确认机制(如ACK)。

-考虑数据持久化和故障恢复方案。

三、数据库与算法题(共3题,每题15分,总分45分)

1.题目:

假设有两个表:

-Users(id,name,city)

-Orders(id,user_id,amount,order_date)

编写SQL查询:返回每个城市的用户平均订单金额(只显示城市和平均金额,金额保留两位小数,城市按字母顺序排列)。

2.题目:

给定一个二维矩阵,其中每个单元格可能是0或1。设计一个算法,找到矩阵中最大面积的“岛屿”(由1组成的连通区域)。例如:

输入:

[

[1,0,1,1,0],

[1,1,0,1,1],

[1,0,0,0,0],

[0,0,0,0,1]

]

输出:4(对应左上角的岛屿)。

3.题目:

实现一个函数,输入一个字符串,返回该字符串的所有排列组合(不重复)。例如,输入abc返回[abc,acb,bac,bca,cab,cba]。

要求:不使用递归。

答案与解析

编程题答案与解析

1.唯一字符列表:

答案:

python

defunique_chars(s):

s=s.lower()

seen=set()

unique=set()

forcharins:

ifcharnotinseen:

seen.add(char)

unique.add(char)

returnlist(unique)

解析:

-将字符串转为小写统一处理。

-使用`seen`记录已遍历的字符,`unique`记录唯一的字符。

-最终返回`unique`的列表。

时间复杂度O(n),空间复杂度O(n)。

2.判断链表环:

答案:

python

classListNode:

def__init__(self,x):self.val=x;self.next=None

defdetectCycle(head):

ifnothead:returnNone

slow,fast=head,head

whilefastandfast.next:

slow=slow.next

fast=fast.next.next

ifslow==fast:

ptr=head

whileptr!=slow:

ptr=ptr.next

slow=slow.next

returnptr

returnNone

解析:

-使用快慢指针判断是否存在环(快指针每次走两步,慢指针走一步,相遇则存在环)。

-相遇后,将慢指针或头节点移动到头,再次相遇的节点即为环入口。

不使用额外空间。

3.最长无重复子串:

答案:

python

deflengthOfLonges

文档评论(0)

1亿VIP精品文档

相关文档