2026年IT行业面试题集软件工程师面试题及参考答案.docxVIP

  • 0
  • 0
  • 约9.34千字
  • 约 28页
  • 2026-01-12 发布于福建
  • 举报

2026年IT行业面试题集软件工程师面试题及参考答案.docx

第PAGE页共NUMPAGES页

2026年IT行业面试题集:软件工程师面试题及参考答案

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

1.题目(10分):

请用Python实现一个函数,输入一个正整数`n`,返回其阶乘值。要求:

-不能使用内置的`math.factorial`函数。

-处理大数时,考虑效率优化(如使用递归或迭代)。

-输入校验:若输入非正整数,返回`Invalidinput`。

2.题目(10分):

用Java实现一个方法,输入一个字符串,返回该字符串中所有唯一字符的列表(不区分大小写)。例如:

输入`Hello`,返回`[h,e,o]`。

要求:

-时间复杂度不超过O(n)。

-忽略空格和标点符号。

3.题目(10分):

用C++实现快速排序算法,输入一个整数数组,原地排序。要求:

-明确写出`partition`函数的实现。

-处理重复元素时,保持稳定性(即相同值的前后顺序不变)。

4.题目(10分):

用JavaScript实现一个函数,输入一个数组,返回一个新数组,其中包含原数组中所有非重复的平方值(按升序排列)。例如:

输入`[1,2,3,4,4]`,返回`[1,4,9,16]`。

要求:

-原地修改时,不使用额外空间;否则可使用O(n)空间。

5.题目(10分):

用Go语言实现一个简单的LRU(LeastRecentlyUsed)缓存,支持`get`和`put`操作。要求:

-使用双向链表+哈希表实现。

-`get(key)`返回值存在时,将其移动到链表头部;不存在返回`-1`。

-`put(key,value)`若缓存已满(假设容量为3),则删除链表尾部元素。

二、算法题(共5题,每题10分)

1.题目(10分):

给定一个包含`n`个整数的数组,判断数组中是否存在三个元素`a+b+c=0`。若存在,返回任意一组解。例如:

输入`[-1,0,1,2]`,返回`[-1,0,1]`。

要求:

-时间复杂度不超过O(n2)。

-可以考虑排序后双指针法。

2.题目(10分):

用动态规划实现斐波那契数列的第`n`项(假设`n=0`)。要求:

-避免递归栈溢出。

-空间复杂度优化到O(1)。

3.题目(10分):

给定两个字符串`s`和`t`,判断`t`是否为`s`的子序列。例如:

`s=abcde`,`t=ace`,返回`true`。

要求:

-双指针法实现,时间复杂度O(n)。

4.题目(10分):

用广度优先搜索(BFS)实现二叉树的层序遍历。例如:

输入`[3,9,20,null,null,15,7]`,返回`[[3],[9,20],[15,7]]`。

要求:

-使用队列实现,处理空节点时跳过。

5.题目(10分):

给定一个字符串`s`,判断其是否是有效的括号组合。例如:

输入`()[]{}`,返回`true`;输入`([)]`,返回`false`。

要求:

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

三、系统设计题(共3题,每题15分)

1.题目(15分):

设计一个简单的微博系统,要求支持以下功能:

-用户发布短文本(最多140字)。

-用户关注/取消关注其他用户。

-用户获取关注者的最新动态(按时间倒序)。

要求:

-描述核心数据结构(如用户表、动态表、关注关系表)。

-说明如何实现动态实时更新(如使用WebSocket或长轮询)。

2.题目(15分):

设计一个高并发的短链接生成服务(如`tinyurl`)。要求:

-输入长链接,返回6位随机短链接。

-支持高并发访问(如QPS10k+)。

-短链接应具有唯一性且易于记忆(如`aP2z7`)。

要求:

-说明URL编码方案和冲突解决策略(如hash碰撞)。

-是否需要分布式部署?如何?

3.题目(15分):

设计一个实时消息推送系统(如微信通知)。要求:

-支持单点登录(登录后自动推送历史消息)。

-支持离线推送(用户未在线时,下次登录时显示通知)。

-说明如何保证消息不丢失(如使用消息队列)。

要求:

-描述主要模块(如认证模块、消息队列、推送服务)。

-是否需要持久化消息?如何设计?

四、数据库题(共4题,每题10分)

1.题目(10分):

写出SQL查询:

-从`orders`表(字段:`id`,`user_id`,`status`,`created_at`)中查询最近7天已完成的订单数(`status=completed`)。

要求:

-忽略时间区问题(假设数据库时区与服务器一致)。

-优化查询性能(如使用索引)。

2.题目(10分):

文档评论(0)

1亿VIP精品文档

相关文档