- 1
- 0
- 约6.23千字
- 约 19页
- 2026-02-15 发布于福建
- 举报
第PAGE页共NUMPAGES页
2026年程序员面试题库及参考答案解析
一、编程语言基础(共5题,每题10分)
题目1:
请用Python编写一个函数,实现判断一个字符串是否为“回文串”(正读反读相同)。例如,输入`madam`,输出`True`;输入`hello`,输出`False`。
题目2:
用Java实现一个方法,将一个整数反转。例如,输入`12345`,输出`54321`。
题目3:
用C++实现一个函数,计算一个整数数组的中位数。例如,输入`{3,1,2}`,输出`2`。
题目4:
用JavaScript编写一个函数,实现删除一个字符串中所有重复的字符,并保持原顺序。例如,输入`abccba`,输出`abc`。
题目5:
用Go语言实现一个方法,判断一个字符串是否包含所有字母(大小写敏感)。例如,输入`Thequickbrownfox`,输出`True`。
参考答案解析
答案1:
python
defis_palindrome(s:str)-bool:
returns==s[::-1]
解析:
通过字符串切片`[::-1]`实现反转,然后与原字符串比较。时间复杂度O(n),空间复杂度O(n)。
答案2:
java
publicstaticintreverse(intnum){
intrev=0;
while(num!=0){
rev=rev10+num%10;
num/=10;
}
returnrev;
}
解析:
通过循环取出数字的每一位,并构建新的反转数字。注意处理负数和溢出问题。
答案3:
cpp
includevector
includealgorithm
usingnamespacestd;
doublefindMedian(vectorintnums){
sort(nums.begin(),nums.end());
intn=nums.size();
if(n%2==0)
return(nums[n/2-1]+nums[n/2])/2.0;
else
returnnums[n/2];
}
解析:
先排序,然后根据数组长度判断中位数的位置。时间复杂度O(nlogn),空间复杂度O(1)。
答案4:
javascript
functionremoveDuplicates(s){
letresult=;
for(letcharofs){
if(!result.includes(char)){
result+=char;
}
}
returnresult;
}
解析:
遍历字符串,通过`includes`方法检查是否已存在该字符,保持顺序插入。时间复杂度O(n2),可优化为O(n)。
答案5:
go
funccontainsAllLetters(sstring)bool{
seen:=make(map[rune]bool)
for_,char:=ranges{
ifchar=Achar=Z||char=achar=z{
seen[char]=true
}
}
returnlen(seen)==26
}
解析:
使用哈希表记录所有字母,判断长度是否为26。时间复杂度O(n),空间复杂度O(1)。
二、数据结构与算法(共5题,每题10分)
题目6:
给定一个无重复元素的数组`nums`和一个目标值`target`,请编写一个函数,返回`target`在数组中的索引(二分查找)。例如,`nums=[1,2,3,4,5]`,`target=3`,输出`2`。
题目7:
用Python实现一个函数,将一个字符串转换为整数(模拟atoi)。例如,输入`-42`,输出`-42`。
题目8:
用Java编写一个方法,实现LRU(最近最少使用)缓存,容量为3。例如,插入`[1,2,3,1,4]`,缓存最终状态为`[1,4]`。
题目9:
用C++实现快速排序算法。
题目10:
用JavaScript编写一个函数,找出数组中所有重复的数字,并返回它们的索引。例如,输入`[1,2,3,2,3]`,输出`[1,3]`。
参考答案解析
答案6:
python
defbinary_search(nums,target):
left,right=0,len(nums)-1
whileleft=right:
mid=(left+right)//2
ifnums[mid]==target:
returnmid
elifnum
原创力文档

文档评论(0)