- 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)