2026年软件工程师笔试编程题及算法面试指南含答案.docxVIP

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

2026年软件工程师笔试编程题及算法面试指南含答案.docx

第PAGE页共NUMPAGES页

2026年软件工程师笔试编程题及算法面试指南含答案

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

1.(15分)设计一个函数,实现将一个字符串中的所有大写字母转换为小写字母,所有小写字母转换为大写字母,其他字符保持不变。

示例输入:`HelloWorld!Python2026`

示例输出:`hELLOwORLD!pYTHON2026`

要求:

-不能使用Python自带的`swapcase()`方法。

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

2.(15分)实现一个函数,判断一个整数是否为“快乐数”。快乐数的定义是:将该数分解为各位数字的平方和,重复此过程,最终结果为1。

示例输入:`19`

示例输出:`True`(因为12+92=82,82+22=68,62+82=100,12+02+02=1)

示例输入:`2`

示例输出:`False`(因为2的平方和永远无法达到1)

要求:

-使用哈希集合记录已出现的平方和,避免无限循环。

-时间复杂度要求O(logn),空间复杂度要求O(logn)。

3.(15分)实现一个函数,找出数组中第三大的数。如果数组长度小于3,返回最大的数。

示例输入:`[3,2,1,5,6,4]`

示例输出:`3`

示例输入:`[1,2]`

示例输出:`2`

要求:

-不能使用排序,时间复杂度要求O(n)。

-可以使用固定大小的额外空间。

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

1.(20分)设计一个算法,找出无重复字符的最长子串的长度。

示例输入:`abcabcbb`

示例输出:`3`(最长子串为abc)

示例输入:`bbbbb`

示例输出:`1`(最长子串为b)

要求:

-使用滑动窗口技术实现。

-时间复杂度要求O(n),空间复杂度要求O(min(m,n)),其中m是字符集大小。

2.(20分)设计一个算法,实现LRU(最近最少使用)缓存。缓存容量为`capacity`,当缓存已满时,最近最少使用的缓存将被移除。

方法要求:

-提供`get(key)`和`put(key,value)`方法。

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

示例输入:

-`LRUCachelru=newLRUCache(2)`

-`lru.put(1,1)`

-`lru.put(2,2)`

-`lru.get(1)`→返回`1`

-`lru.put(3,3)`→前置键`2`将被移除

-`lru.get(2)`→返回`-1`(未找到)

要求:

-`get`和`put`操作的时间复杂度均为O(1)。

-双向链表节点需包含`key`、`value`和`prev`、`next`指针。

三、数据库与系统设计题(共1题,25分)

1.(25分)设计一个简单的社交系统用户表,需满足以下需求:

功能要求:

-每个用户有唯一ID、用户名、邮箱(必须唯一)、注册时间。

-用户可以关注其他用户,需记录关注关系(不能自关注)。

-支持查询某个用户的粉丝数量和关注数量。

数据库表设计:

-`users`表:

-`id`(主键,自增)

-`username`(唯一)

-`email`(唯一)

-`register_time`(时间戳)

-`follows`表:

-`follower_id`(外键,关联`users.id`)

-`followee_id`(外键,关联`users.id`)

-`created_at`(时间戳)

SQL查询示例:

-查询用户`id=1`的粉丝数量:

sql

SELECTCOUNT()ASfollowers_count

FROMfollows

WHEREfollowee_id=1;

-查询用户`id=1`的关注数量:

sql

SELECTCOUNT()ASfollowees_count

FROMfollows

WHEREfollower_id=1;

要求:

-说明表结构设计的原因,并考虑数据一致性和扩展性。

-优化查询性能,例如索引设计。

答案与解析

一、编程实现题

1.大小写转换

代码:

python

defswap_case(s:str)-str:

result=[]

forcharins:

ifa=char=z:

result.append(char.upper())

elifA=char=Z:

result.append(char.lower())

else:

result.append(ch

文档评论(0)

1亿VIP精品文档

相关文档