2026年软件工程师求职面试题及答案.docxVIP

  • 2
  • 0
  • 约7.07千字
  • 约 22页
  • 2026-01-29 发布于福建
  • 举报

第PAGE页共NUMPAGES页

2026年软件工程师求职面试题及答案

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

1.题目:

请用Python实现一个函数,输入一个字符串,返回该字符串中所有单词的逆序排列。例如,输入`helloworld`,输出`[olleh,dlrow]`。

答案:

python

defreverse_words(s:str)-list:

return[word[::-1]forwordins.split()]

解析:

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

-列表推导式`[word[::-1]forwordins.split()]`遍历每个单词并逆序。

-返回逆序后的单词列表。

2.题目:

请用Java实现一个方法,判断一个整数是否为素数。如果是,返回`true`;否则,返回`false`。

答案:

java

publicbooleanisPrime(intn){

if(n=1)returnfalse;

for(inti=2;i=Math.sqrt(n);i++){

if(n%i==0)returnfalse;

}

returntrue;

}

解析:

-素数定义为大于1且仅能被1和自身整除的数。

-从2到`sqrt(n)`遍历,若能整除则非素数。

-优化:只需检查到平方根即可,因较大因子必对应较小因子。

3.题目:

请用C++实现一个函数,输入一个数组,返回该数组中的最大值及其索引。例如,输入`{3,8,1,9,2}`,输出`(9,3)`。

答案:

cpp

includeutility

std::pairint,intfindMaxIndex(intarr[],intsize){

intmax=arr[0],idx=0;

for(inti=1;isize;i++){

if(arr[i]max){

max=arr[i];

idx=i;

}

}

return{max,idx};

}

解析:

-初始化最大值和索引为第一个元素。

-遍历数组,更新最大值及索引。

-返回`std::pair`类型,包含最大值和索引。

4.题目:

请用JavaScript实现一个箭头函数,输入一个数组,返回该数组所有元素的平方和。例如,输入`[1,2,3]`,输出`14`(12+22+32=14)。

答案:

javascript

constsumOfSquares=arr=arr.reduce((acc,num)=acc+numnum,0);

解析:

-`reduce`方法累加每个元素的平方。

-初始值`0`作为累加起点。

-箭头函数简洁实现。

5.题目:

请用Go实现一个函数,输入一个字符串,返回该字符串中所有唯一字符的列表。例如,输入`hello`,输出`[e,l]`。

答案:

go

funcuniqueChars(sstring)[]rune{

freq:=make(map[rune]int)

for_,char:=ranges{

freq[char]++

}

varunique[]rune

forchar,count:=rangefreq{

ifcount==1{

unique=append(unique,char)

}

}

returnunique

}

解析:

-哈希表`freq`统计字符频率。

-遍历哈希表,仅添加频率为1的字符。

-返回唯一字符列表。

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

1.题目:

请用Python实现快速排序算法,输入一个数组,返回排序后的数组。例如,输入`[3,1,4,1,5]`,输出`[1,1,3,4,5]`。

答案:

python

defquickSort(arr):

iflen(arr)=1:

returnarr

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

left=[xforxinarrifxpivot]

middle=[xforxinarrifx==pivot]

right=[xforxinarrifxpivot]

returnquickSort(left)+middle+quickSort(right)

解析:

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

-分区:小于、等于、大于基准的子数组。

-递归排序左右子数组,合并结果。

2.题目:

请用Jav

文档评论(0)

1亿VIP精品文档

相关文档