2026年腾讯软件开发工程师面试题及答案详述.docxVIP

  • 0
  • 0
  • 约5.7千字
  • 约 16页
  • 2026-03-10 发布于福建
  • 举报

2026年腾讯软件开发工程师面试题及答案详述.docx

第PAGE页共NUMPAGES页

2026年腾讯软件开发工程师面试题及答案详述

一、编程题(共5题,每题20分,总计100分)

题目1(20分):

问题描述:

给定一个字符串`s`,其中包含数字和字母,要求将字符串中的所有数字和字母分开,数字在前,字母在后,且相同类型的字符保持原有顺序。例如:

输入:`a1b2c3`

输出:`123abc`

要求:

1.不能使用额外的库函数(如`split`、`filter`等)。

2.时间复杂度要求O(n)。

答案:

python

defseparate_digits_letters(s:str)-str:

digits=[]

letters=[]

forcharins:

ifchar.isdigit():

digits.append(char)

elifchar.isalpha():

letters.append(char)

return.join(digits+letters)

示例

print(separate_digits_letters(a1b2c3))#输出:123abc

解析:

-遍历字符串,判断每个字符是否为数字或字母,分别存储到`digits`和`letters`列表中。

-最后合并两个列表(数字在前,字母在后)并转换为字符串输出。

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

题目2(20分):

问题描述:

实现一个简单的LRU(LeastRecentlyUsed)缓存,支持以下操作:

1.`get(key)`:返回键对应的值,若不存在返回-1。

2.`put(key,value)`:插入或更新键值对,当缓存容量已满时,删除最久未使用的项。

要求:

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

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

答案:

python

classListNode:

def__init__(self,key=0,value=0):

self.key=key

self.value=value

self.prev=None

self.next=None

classLRUCache:

def__init__(self,capacity:int):

self.capacity=capacity

self.cache={}

self.head=ListNode()

self.tail=ListNode()

self.head.next=self.tail

self.tail.prev=self.head

def_add_node(self,node:ListNode):

node.prev=self.head

node.next=self.head.next

self.head.next.prev=node

self.head.next=node

def_remove_node(self,node:ListNode):

prev_node=node.prev

next_node=node.next

prev_node.next=next_node

next_node.prev=prev_node

def_move_to_head(self,node:ListNode):

self._remove_node(node)

self._add_node(node)

def_pop_tail(self)-ListNode:

res=self.tail.prev

self._remove_node(res)

returnres

defget(self,key:int)-int:

ifkeynotinself.cache:

return-1

node=self.cache[key]

self._move_to_head(node)

returnnode.value

defput(self,key:int,value:int)-None:

ifkeyinself.cache:

node=self.cache[key]

node.value=value

self._move_to_head(node)

else:

node=ListNode(key,value)

self.cache[key]=node

self._add_node(node)

iflen(self.cache)self.capacity:

tail=self._pop_tail()

delself.cache[tail.key]

示例

cach

文档评论(0)

1亿VIP精品文档

相关文档