2026年程序员招聘面试题及编程能力评估.docxVIP

  • 0
  • 0
  • 约5.59千字
  • 约 17页
  • 2026-02-06 发布于福建
  • 举报

2026年程序员招聘面试题及编程能力评估.docx

第PAGE页共NUMPAGES页

2026年程序员招聘面试题及编程能力评估

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

1.Python编程题(6分)

题目:

编写一个Python函数,实现以下功能:

-接收一个字符串作为输入,统计其中每个字母的出现次数(忽略大小写和标点符号)。

-返回一个字典,键为字母,值为对应的出现次数。

-示例输入:`Hello,World!`,输出:`{h:1,e:1,l:3,o:2,w:1,r:1,d:1}`。

答案与解析:

python

defcount_letters(s):

s=.join(c.lower()forcinsifc.isalpha())

return{char:s.count(char)forcharinset(s)}

解析:

-使用列表推导式过滤标点符号并转换为小写。

-`set(s)`去重,避免重复计数。

-`s.count(char)`统计每个字母的出现次数。

2.Java编程题(6分)

题目:

实现一个Java方法,判断一个整数是否为完全平方数。例如:

-输入:`16`,输出:`true`;

-输入:`14`,输出:`false`。

答案与解析:

java

publicstaticbooleanisPerfectSquare(intnum){

if(num0)returnfalse;

intsqrt=(int)Math.sqrt(num);

returnsqrtsqrt==num;

}

解析:

-负数不是完全平方数。

-`Math.sqrt(num)`计算平方根,转换为整数后比较。

3.JavaScript编程题(6分)

题目:

编写一个JavaScript函数,将一个数组中的所有元素按奇偶性分组,返回一个对象,例如:

-输入:`[1,2,3,4,5]`,输出:`{odd:[1,3,5],even:[2,4]}`。

答案与解析:

javascript

functiongroupOddEven(arr){

returnarr.reduce((acc,num)={

if(num%2===0)acc.even=(acc.even||[]).concat(num);

elseacc.odd=(acc.odd||[]).concat(num);

returnacc;

},{});

}

解析:

-`reduce`遍历数组,按奇偶性分类。

-使用条件运算符初始化`even`或`odd`数组。

4.C++编程题(6分)

题目:

实现一个C++函数,找出数组中最长连续递增子序列的长度。例如:

-输入:`{1,3,5,4,7}`,输出:`3`(`1,3,5`)。

答案与解析:

cpp

intlongestIncreasingSubseq(intarr[],intn){

if(n==0)return0;

vectorintdp(n,1);

for(inti=1;in;++i)

for(intj=0;ji;++j)

if(arr[i]arr[j])dp[i]=max(dp[i],dp[j]+1);

returnmax_element(dp.begin(),dp.end());

}

解析:

-动态规划解法,`dp[i]`表示以`arr[i]`结尾的最长子序列长度。

-双层循环比较前缀元素。

5.Go编程题(6分)

题目:

编写一个Go函数,实现快速排序算法。输入一个切片,返回排序后的切片。

答案与解析:

go

funcquickSort(arr[]int)[]int{

iflen(arr)=1{returnarr}

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

left,right:=0,len(arr)-1

fori:=rangearr{

ifarr[i]pivot{arr[i],arr[left]=arr[left],arr[i];left++}

elseifarr[i]pivot{arr[i],arr[right]=arr[right],arr[i];right--}

}

returnappend(quickSort(arr[:left]),quickSort(arr[right+1:])...)

}

解析:

-选择中间元素为基准,分区左右子数组。

-递归排序左右部分。

二、算法与数

文档评论(0)

1亿VIP精品文档

相关文档