2025年美团大厂测试题及答案.docVIP

  • 0
  • 0
  • 约4.36千字
  • 约 12页
  • 2025-08-17 发布于福建
  • 举报

2025年美团大厂测试题及答案

本文借鉴了近年相关经典测试题创作而成,力求帮助考生深入理解测试题型,掌握答题技巧,提升应试能力。

2025年美团大厂测试题及答案

一、编程题

题目1:字符串反转

题目描述:

给定一个字符串`s`,请将其反转。

示例:

输入:`abcdef`

输出:`fedcba`

解答:

```python

defreverse_string(s):

returns[::-1]

示例

input_str=abcdef

output_str=reverse_string(input_str)

print(output_str)输出:fedcba

```

解析:

字符串反转可以通过Python的切片操作实现,`s[::-1]`表示从后向前逐个字符取值,实现反转。

题目2:合并两个有序链表

题目描述:

给定两个有序链表的头节点`l1`和`l2`,请将它们合并为一个新的有序链表并返回。新链表是由`l1`和`l2`的节点交替排序组成的。

示例:

输入:`l1=[1,2,4]`,`l2=[1,3,4]`

输出:`[1,1,2,3,4,4]`

解答:

```python

classListNode:

def__init__(self,val=0,next=None):

self.val=val

self.next=next

defmerge_two_lists(l1,l2):

dummy=ListNode(0)

current=dummy

whilel1andl2:

ifl1.vall2.val:

current.next=l1

l1=l1.next

else:

current.next=l2

l2=l2.next

current=current.next

ifl1:

current.next=l1

ifl2:

current.next=l2

returndummy.next

示例

l1=ListNode(1,ListNode(2,ListNode(4)))

l2=ListNode(1,ListNode(3,ListNode(4)))

merged_list=merge_two_lists(l1,l2)

whilemerged_list:

print(merged_list.val,end=)

输出:112344

```

解析:

合并两个有序链表的关键是使用一个虚拟头节点`dummy`,通过比较两个链表的当前节点的值,将较小的节点链接到新链表中,并移动相应的指针。最后,如果其中一个链表还有剩余节点,直接链接到新链表的末尾。

二、算法题

题目3:二叉树的最大深度

题目描述:

给定一个二叉树,请计算它的最大深度。最大深度是指从根节点到最远叶子节点的最长路径上的节点数量。

示例:

输入:`[3,9,20,null,null,15,7]`

输出:`3`

解答:

```python

fromcollectionsimportdeque

classTreeNode:

def__init__(self,val=0,left=None,right=None):

self.val=val

self.left=left

self.right=right

defmax_depth(root):

ifnotroot:

return0

queue=deque([root])

depth=0

whilequeue:

level_size=len(queue)

for_inrange(level_size):

node=queue.popleft()

ifnode.left:

queue.append(node.left)

ifnode.right:

queue.append(node.right)

depth+=1

returndepth

示例

root=TreeNode(3)

root.left=TreeNode(9)

root.right=TreeNode(20,TreeNode(15),TreeNode(7))

print(max_depth(root))输出:3

```

解析:

计算二叉树的最大深度可以使用广度优先搜索(BFS)的方法。通过逐层遍历二叉树的节点,统计遍历的层数即为最大深度。

题目4:最长递增子序列

题目描述:

给定一个无序的整数数组,请找到其中最长的递增子序列的长度。

示例:

输入:`[10,9,2,5,3,7,101,18]`

输出:`4`

解释:最长的递增子序列是`[2,3,7,101]`。

解答:

```python

deflength_of_LIS(nums):

ifnotnums:

return0

dp=[1]len(nums)

foriinrange(1,len(nums)):

forjinrange(i):

ifn

文档评论(0)

1亿VIP精品文档

相关文档