2026年软件开发工程师笔试编程题及算法详解.docxVIP

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

2026年软件开发工程师笔试编程题及算法详解.docx

第PAGE页共NUMPAGES页

2026年软件开发工程师笔试编程题及算法详解

一、编程实现题(共3题,每题15分,共45分)

题目1(15分):实现一个简单的LRU(LeastRecentlyUsed)缓存机制

背景说明:

LRU缓存是一种常用的内存管理算法,通过记录最近最少使用的元素,当缓存容量满时,优先淘汰最久未使用的元素。请实现一个LRU缓存类,支持以下操作:

1.`LRU(intcapacity)`:初始化缓存容量。

2.`get(intkey)`:获取键`key`对应的值,若存在则返回值并更新最近使用时间,若不存在返回-1。

3.`put(intkey,intvalue)`:插入或更新键值对,若容量已满则淘汰最久未使用的元素。

要求:

-使用哈希表和双向链表实现,时间复杂度为`O(1)`。

-请提供完整代码实现及核心逻辑说明。

示例输入:

plaintext

LRU(2)//初始化容量为2

put(1,1)//缓存是{1=1}

put(2,2)//缓存是{1=1,2=2}

get(1)//返回1

put(3,3)//去除键2,缓存是{1=1,3=3}

get(2)//返回-1(未找到)

题目2(15分):实现一个字符串转换器,支持大小写翻转和字符替换

背景说明:

给定一个字符串`s`和一个转换规则`rules`,其中`rules`是一个列表,每个元素为`(from_char,to_char)`表示将`from_char`替换为`to_char`。此外,要求在替换过程中,所有大写字母转换为小写,所有小写字母转换为大写(即大小写翻转)。

要求:

-请实现一个函数`convertString(s,rules)`,返回转换后的字符串。

-请注意替换顺序,先进行字符替换,再统一大小写翻转。

示例输入:

plaintext

s=HelloWorld

rules=[(H,h),(o,O),(d,D)]

convertString(s,rules)//输出hELLOwORLD

解析:

1.先替换字符:`HelloWorld`→`hELLOWorld`(`H`→`h`,`o`→`O`,`d`→`D`)。

2.统一大写转小写、小写转大写:`hELLOWorld`→`hELLOwORLD`。

题目3(15分):实现一个文件压缩算法,支持重复字符合并

背景说明:

给定一个字符串`s`,要求将其压缩为更短的表示形式。压缩规则如下:

1.若字符连续重复`k`次(`k=3`),则用`k+字符`表示(如`aaa`→`3a`)。

2.若字符不重复或重复次数不足3次,保持原样。

要求:

-请实现一个函数`compressString(s)`,返回压缩后的字符串。

示例输入:

plaintext

s=aabcccaaa

compressString(s)//输出a2b1c3a4

解析:

1.分段处理:`aa+bcc+caaa`→`a2+b1c3+a4`→`a2b1c3a4`。

二、算法设计题(共2题,每题20分,共40分)

题目4(20分):设计一个无重复数字的随机数生成器

背景说明:

给定一个范围`[1,n]`(`n`≤10^6),要求生成一个无重复的随机数序列,且每个数字出现的概率相同。

要求:

1.请设计一个高效的算法,支持`O(n)`的预处理时间和`O(1)`的随机数生成时间。

2.请说明核心思路及代码实现。

解析提示:

-可参考Fisher-Yates洗牌算法(随机交换)。

-预处理时将`[1,n]`排列,随机交换元素至随机位置。

题目5(20分):实现一个滑动窗口最大值函数

背景说明:

给定一个数组`nums`和一个窗口大小`k`,要求返回一个新数组,其中每个位置`i`的值表示以`i`为右端点的`k`大小窗口内的最大值。

要求:

1.请实现一个函数`maxSlidingWindow(nums,k)`,返回结果数组。

2.时间复杂度要求`O(n)`,空间复杂度`O(k)`。

示例输入:

plaintext

nums=[1,3,-1,-3,5,3,6,7]

k=3

maxSlidingWindow(nums,k)//输出[3,3,5,5,6,7]

解析提示:

-使用双端队列维护窗口最大值,队列中存储索引,保证队首始终是当前窗口最大值。

-滑动时移除队列中不在窗口的索引,并添加新元素的索引。

三、编程实现题(共2题,每题25分,共50分)

题目6(25分):实现一个简单的分布式锁服务

背景说明:

分布式系

文档评论(0)

1亿VIP精品文档

相关文档