科技公司面试题集岗位答案解析.docxVIP

  • 0
  • 0
  • 约6.7千字
  • 约 20页
  • 2026-01-31 发布于福建
  • 举报

第PAGE页共NUMPAGES页

2026年科技公司面试题集:岗位答案解析

一、编程与算法题(共5题,每题10分)

1.题目:

给定一个字符串`s`,其中包含字母和数字,请编写一个函数,统计其中字母和数字的数量,并返回一个字典形式的结果。例如:输入`s=a1b2c3`,输出`{letters:3,digits:3}`。

答案:

python

defcount_letters_digits(s):

count={letters:0,digits:0}

forcharins:

ifchar.isalpha():

count[letters]+=1

elifchar.isdigit():

count[digits]+=1

returncount

解析:

-使用字典`count`存储字母和数字的计数。

-遍历字符串`s`,通过`isalpha()`和`isdigit()`方法判断字符类型。

-累加对应类型的计数,最后返回结果。

2.题目:

实现一个函数,检查一个字符串是否为有效的括号组合。例如:输入`()[]{}`,返回`True`;输入`([)]`,返回`False`。

答案:

python

defvalid_parentheses(s):

stack=[]

mapping={):(,]:[,}:{}

forcharins:

ifcharinmapping:

top=stack.pop()ifstackelse#

ifmapping[char]!=top:

returnFalse

else:

stack.append(char)

returnnotstack

解析:

-使用栈`stack`存储左括号。

-通过映射`mapping`将右括号与左括号对应。

-遍历字符串,遇到右括号时,检查栈顶是否匹配;不匹配则返回`False`。

-最后栈为空则返回`True`。

3.题目:

实现快速排序算法,对列表进行排序。

答案:

python

defquick_sort(arr):

iflen(arr)=1:

returnarr

pivot=arr[len(arr)//2]

left=[xforxinarrifxpivot]

middle=[xforxinarrifx==pivot]

right=[xforxinarrifxpivot]

returnquick_sort(left)+middle+quick_sort(right)

解析:

-选择中间元素作为基准`pivot`。

-将列表分为`left`(小于基准)、`middle`(等于基准)、`right`(大于基准)。

-递归对`left`和`right`排序,合并结果。

4.题目:

给定一个无重复元素的数组`nums`和一个目标值`target`,请找出数组中和为`target`的三个数的组合,并返回所有可能的组合。

答案:

python

defthree_sum(nums,target):

nums.sort()

result=[]

foriinrange(len(nums)-2):

ifi0andnums[i]==nums[i-1]:

continue

left,right=i+1,len(nums)-1

whileleftright:

total=nums[i]+nums[left]+nums[right]

iftotal==target:

result.append([nums[i],nums[left],nums[right]])

whileleftrightandnums[left]==nums[left+1]:

left+=1

whileleftrightandnums[right]==nums[right-1]:

right-=1

left+=1

right-=1

eliftotaltarget:

left+=1

else:

right-=1

returnresult

解析:

-先对数组排序,便于使用双指针。

-遍历数组,对于每个元素,使用双指针`left`和`right`寻找其他两个数使和为`target`。

-避免重复组合,跳过相同的元素。

5.题目:

实现一个LRU(最近最少使用)缓存,支持`get`和`put`操作。

答案:

python

classLRUCache:

def__ini

文档评论(0)

1亿VIP精品文档

相关文档