2026年软件工程师面试题及系统设计案例分析含答案.docxVIP

  • 0
  • 0
  • 约6.08千字
  • 约 17页
  • 2026-03-05 发布于福建
  • 举报

2026年软件工程师面试题及系统设计案例分析含答案.docx

第PAGE页共NUMPAGES页

2026年软件工程师面试题及系统设计案例分析含答案

一、编程题(共3题,每题20分)

1.题目(20分):

给定一个非负整数数组`nums`,返回其中连续数字的最大和。要求不使用内置的`max()`函数,仅使用Python实现。

示例输入:`nums=[5,-2,3,1,-1,2]`

示例输出:`6`(解释:连续子数组`[3,1,-1,2]`的和最大,为`6`)

要求:

-时间复杂度:O(n)

-空间复杂度:O(1)

2.题目(20分):

实现一个简单的LRU(最近最少使用)缓存,支持`get(key)`和`put(key,value)`操作。缓存容量固定为`capacity`,超出容量时需淘汰最久未使用的元素。

示例:

python

lru=LRUCache(2)

lru.put(1,1)#缓存是{1:1}

lru.put(2,2)#缓存是{1:1,2:2}

print(lru.get(1))#返回1

lru.put(3,3)#去除键2,缓存是{1:1,3:3}

print(lru.get(2))#返回-1(未找到)

要求:

-使用双向链表和哈希表实现,支持O(1)时间复杂度操作。

3.题目(20分):

编写一个函数`validParentheses(s)`,判断字符串`s`中的括号(`(,),{,},[,]`)是否有效。有效括号需满足:

-左右括号必须一一对应

-顺序正确(例如`{[]}`有效,`({)]`无效)

示例输入:`s={[]}`

示例输出:`True`

要求:

-使用栈结构实现,时间复杂度O(n)。

二、系统设计题(共1题,40分)

题目(40分):

设计一个支持高并发的短链接系统(如`tinyurl`)。系统需满足以下要求:

1.核心功能:

-用户输入长链接,系统返回固定长度的短链接(如`/abc123`)。

-访问短链接时,系统解析为对应的长链接并返回。

2.性能要求:

-每秒支持至少10,000次短链接生成请求。

-短链接解析响应时间需低于100ms。

3.可用性与扩展性:

-支持分布式部署,可水平扩展。

-若短链接被占用(如已存在),需自动生成新的短链接。

4.附加要求:

-短链接生成需避免冲突(冲突概率低于0.1%)。

-支持自定义短链接前缀(可选)。

要求:

-描述系统架构、核心组件(数据库、缓存、负载均衡等)及选型理由。

-说明短链接生成算法(如Base62编码)。

-讨论高并发场景下的解决方案(如限流、熔断)。

三、数据库与SQL题(共2题,每题20分)

1.题目(20分):

设计一个电商订单表`orders`,包含以下字段:

-`order_id`(主键,自增)

-`user_id`(用户ID,关联`users`表)

-`product_id`(商品ID,关联`products`表)

-`quantity`(购买数量)

-`price`(单价)

-`order_time`(下单时间,精确到秒)

SQL查询:

-查询最近7天内每个用户的总消费金额(按`user_id`分组,金额降序排列)。

-若用户未消费,返回0。

示例:

sql

+++

|user_id|total_spent|

+++

|1|150.00|

|2|0.00|

|3|200.50|

+++

要求:

-使用`SUM`和`GROUPBY`,考虑时区问题(如UTC时间)。

2.题目(20分):

假设`products`表包含`product_id`、`name`、`category`(如electronics,clothing)和`price`。

SQL查询:

-查询每个分类的平均商品价格,且仅返回平均价格高于100的分类。

-结果按平均价格降序排列。

示例:

sql

++--+

|category|avg_price|

++--+

|electronics|250.00|

++--+

要求:

-使用`AVG`和`HAVING`子句。

四、算法与数据结构题(共2题,每题20分)

1.题目(20分):

给定一个字符串`s`,判断其是否为回文(忽略大小写和非字母字符)。

示例输入:`s=Aman,aplan,ac

文档评论(0)

1亿VIP精品文档

相关文档