- 0
- 0
- 约6.08千字
- 约 17页
- 2026-03-05 发布于福建
- 举报
第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)