2026年美团技术面试常见问题与答案.docxVIP

  • 0
  • 0
  • 约7.86千字
  • 约 23页
  • 2026-02-03 发布于福建
  • 举报

第PAGE页共NUMPAGES页

2026年美团技术面试常见问题与答案

一、编程基础(共5题,每题10分,总分50分)

1.题目:

给定一个字符串,请反转该字符串中的每个单词,但保持单词顺序不变。例如,输入helloworld,输出ollehdlrow。

答案:

python

defreverse_words(s:str)-str:

words=s.split()

reversed_words=[word[::-1]forwordinwords]

return.join(reversed_words)

示例

print(reverse_words(helloworld))#输出:ollehdlrow

解析:

-先通过`split()`将字符串按空格分割成单词列表。

-对每个单词使用切片`[::-1]`进行反转。

-最后用`join()`将反转后的单词列表重新组合成字符串。

2.题目:

实现一个函数,判断一个整数是否是回文数(正序和倒序相同)。例如,输入121,输出True;输入-121,输出False。

答案:

python

defis_palindrome(x:int)-bool:

ifx0:

returnFalse

original=x

reversed_num=0

whilex0:

reversed_num=reversed_num10+x%10

x//=10

returnoriginal==reversed_num

示例

print(is_palindrome(121))#输出:True

print(is_palindrome(-121))#输出:False

解析:

-负数直接返回False,因为回文数不能有负号。

-通过循环将数字反转:每次取末尾数字`x%10`,拼接到`reversed_num`上。

-最后比较原始数字和反转后的数字是否相同。

3.题目:

给定两个字符串s1和s2,请找出它们的第一个不同的字符,并返回其索引。如果所有字符都相同,返回-1。

答案:

python

deffind_first_difference(s1:str,s2:str)-int:

len1,len2=len(s1),len(s2)

min_len=min(len1,len2)

foriinrange(min_len):

ifs1[i]!=s2[i]:

returni

iflen1!=len2:

returnmin_len

return-1

示例

print(find_first_difference(hello,helmo))#输出:4

print(find_first_difference(abc,abc))#输出:-1

解析:

-比较两个字符串的最短长度部分,逐个字符对比。

-第一个不同的字符的索引即为结果。

-如果所有字符相同但长度不同,返回较短字符串的长度。

-如果完全相同,返回-1。

4.题目:

实现一个函数,统计一个字符串中每个字符出现的次数,并返回结果。例如,输入hello,输出{h:1,e:1,l:2,o:1}。

答案:

python

fromcollectionsimportdefaultdict

defcount_chars(s:str)-dict:

count=defaultdict(int)

forcharins:

count[char]+=1

returndict(count)

示例

print(count_chars(hello))#输出:{h:1,e:1,l:2,o:1}

解析:

-使用`defaultdict`自动初始化计数为0。

-遍历字符串,每个字符计数加1。

-最后将结果转换为普通字典。

5.题目:

给定一个数组,请原地(不使用额外空间)反转数组。例如,输入[1,2,3,4,5],输出[5,4,3,2,1]。

答案:

python

defreverse_array(nums:list)-None:

left,right=0,len(nums)-1

whileleftright:

nums[left],nums[right]=nums[right],nums[left]

left+=1

right-=1

示例

arr=[1,2,3,4,5]

reverse_array(arr)

print(arr)#输出:[5,4,3,2,

文档评论(0)

1亿VIP精品文档

相关文档