- 0
- 0
- 约5.59千字
- 约 17页
- 2026-02-06 发布于福建
- 举报
第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)