- 1
- 0
- 约4.76千字
- 约 13页
- 2026-02-06 发布于福建
- 举报
第PAGE页共NUMPAGES页
2026年软件开发工程师面试题目及答案详解
一、编程题(3题,每题10分,共30分)
背景说明:本题考察编程基础、算法实现及代码规范性。要求使用Java或Python语言完成,注意代码效率和可读性。
题目1(10分):
编写一个函数,输入一个正整数`n`,返回`n`的阶乘值。要求使用递归或迭代方式实现,不得使用内置库函数。
示例输入:`n=5`
示例输出:`120`
答案与解析:
java
publicclassFactorial{
publicstaticlongfactorial(intn){
if(n==0)return1;
longresult=1;
for(inti=1;i=n;i++){
result=i;
}
returnresult;
}
//递归实现
publicstaticlongfactorialRecursive(intn){
if(n==0)return1;
returnnfactorialRecursive(n-1);
}
publicstaticvoidmain(String[]args){
System.out.println(factorial(5));//输出120
System.out.println(factorialRecursive(5));//输出120
}
}
解析:
-迭代实现通过循环从`1`乘到`n`,时间复杂度为`O(n)`。
-递归实现简洁但可能导致栈溢出(如`n`过大时),时间复杂度同样为`O(n)`。
-阶乘计算需注意大数问题,若`n`超过20,结果可能超出`long`范围,需使用`BigInteger`。
题目2(10分):
给定一个字符串`s`,判断其是否为回文串(即正读反读相同)。例如,`madam`是回文串,`hello`不是。
示例输入:`s=racecar`
示例输出:`true`
答案与解析:
python
defis_palindrome(s:str)-bool:
left,right=0,len(s)-1
whileleftright:
ifs[left]!=s[right]:
returnFalse
left+=1
right-=1
returnTrue
递归实现
defis_palindrome_recursive(s:str)-bool:
iflen(s)=1:
returnTrue
ifs[0]!=s[-1]:
returnFalse
returnis_palindrome_recursive(s[1:-1])
print(is_palindrome(racecar))#输出True
print(is_palindrome_recursive(hello))#输出False
解析:
-双指针法从两端向中间遍历,时间复杂度为`O(n)`,空间复杂度为`O(1)`。
-递归法通过去掉首尾字符递归判断,时间复杂度为`O(n)`,空间复杂度为`O(n)`(栈空间)。
-注意:需忽略大小写和空格,可增加预处理步骤。
题目3(10分):
实现一个`TopK`类,支持动态添加元素,并能在`O(1)`时间内返回当前元素中最大的`k`个值。
示例输入:
python
topk=TopK(3)
topk.add(3)
topk.add(1)
topk.add(4)
topk.add(1)
topk.top()#返回[4,3,1]
答案与解析:
python
importheapq
classTopK:
def__init__(self,k:int):
self.k=k
self.heap=[]
defadd(self,val:int):
iflen(self.heap)self.k:
heapq.heappush(self.heap,val)
else:
ifvalself.heap[0]:
heapq.heapreplace(self.heap,val)
deftop(self):
returnsorted(self.heap,reverse=True)
示例用法
topk=TopK(3)
topk.add(3)
topk.add(1)
topk.add(4)
topk.add(1)
print(topk.top())#输出[4,3,1]
解析:
-使用最小堆维护`k`个最大值,堆大小为`k`,每次添加时若堆未满则直接入堆
您可能关注的文档
最近下载
- 《场地设计》2014年历年真题.pdf VIP
- 高考英语语法填空历年真题和答案详解权威整理.doc VIP
- 产业经济学 课后复习思考习题答案(刘志彪) 及 期末试题库大全.docx
- 刮痧PPT课件制作.pptx VIP
- 美国AB变频器说明书 22F Power Flex 4m.pdf VIP
- 为人处世(新员工培训).docx VIP
- 2026年数据分析和人工智能规划指南-Gartner.pptx VIP
- 信号与线性系统分析(第四版)--吴大正课件.ppt VIP
- 南华大学2024-2025学年第1学期《生物化学》期末试卷(A卷)附参考答案.docx
- 蒋氏字辈表2016.10剖析.doc VIP
原创力文档

文档评论(0)