2026年互联网公司实习生面试题集及答案解析.docxVIP

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

2026年互联网公司实习生面试题集及答案解析.docx

第PAGE页共NUMPAGES页

2026年互联网公司实习生面试题集及答案解析

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

1.题目:

请用Python编写一个函数,输入一个正整数n,返回其所有因子(不包括1和n本身)的列表。例如,输入12,返回[2,3,4,6]。

答案:

python

deffind_factors(n):

factors=[]

foriinrange(2,n):

ifn%i==0:

factors.append(i)

returnfactors

解析:

通过遍历从2到n-1的所有数字,判断是否能整除n,若能则添加到因子列表中。时间复杂度为O(n)。

2.题目:

用Java实现一个方法,输入一个字符串,返回该字符串中每个字符出现的次数,结果以Map形式返回。例如,输入hello,返回{h:1,e:1,l:2,o:1}。

答案:

java

importjava.util.HashMap;

importjava.util.Map;

publicclassCharCount{

publicstaticMapCharacter,IntegercountChars(Strings){

MapCharacter,Integermap=newHashMap();

for(charc:s.toCharArray()){

map.put(c,map.getOrDefault(c,0)+1);

}

returnmap;

}

}

解析:

使用HashMap存储字符及其出现次数,遍历字符串的每个字符,通过getOrDefault方法更新计数。时间复杂度为O(n)。

3.题目:

用JavaScript编写一个函数,输入一个数组,返回一个新数组,其中包含原数组中所有不重复的元素。例如,输入[1,2,2,3,4,4,5],返回[1,2,3,4,5]。

答案:

javascript

functionuniqueArray(arr){

return[...newSet(arr)];

}

解析:

利用Set数据结构的唯一性特性,将数组转换为Set后再次转为数组,即可去除重复元素。时间复杂度为O(n)。

4.题目:

用C++实现一个函数,输入一个整数数组,返回该数组中的最大值及其索引。例如,输入[3,1,4,1,5],返回(5,4)。

答案:

cpp

includeiostream

includevector

usingnamespacestd;

pairint,intfindMaxIndex(constvectorintarr){

intmax_val=arr[0],max_idx=0;

for(inti=1;iarr.size();++i){

if(arr[i]max_val){

max_val=arr[i];

max_idx=i;

}

}

return{max_val,max_idx};

}

解析:

初始化最大值为第一个元素,遍历数组更新最大值及其索引。时间复杂度为O(n)。

5.题目:

用Go语言编写一个函数,输入一个字符串,返回该字符串的反转结果。例如,输入abcde,返回edcba。

答案:

go

packagemain

importfmt

funcreverseString(sstring)string{

runes:=[]rune(s)

fori,j:=0,len(runes)-1;ij;i,j=i+1,j-1{

runes[i],runes[j]=runes[j],runes[i]

}

returnstring(runes)

}

解析:

将字符串转换为rune切片(处理多字节字符),通过双指针交换首尾字符,实现反转。时间复杂度为O(n)。

二、数据结构与算法(共5题,每题10分,总分50分)

1.题目:

用Python实现快速排序算法,输入一个整数数组,返回排序后的数组。例如,输入[3,6,8,10,1,2,1],返回[1,1,2,3,6,8,10]。

答案:

python

defquicksort(arr):

iflen(arr)=1:

returnarr

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

left=[xforxinarrifxpivot]

middle=[xforxinarrifx==pivot]

right=[xforxinarr

文档评论(0)

1亿VIP精品文档

相关文档