- 2
- 0
- 约4.84千字
- 约 16页
- 2026-10-19 发布于福建
- 举报
第PAGE页共NUMPAGES页
2026年腾讯软件开发工程师面试要点及答案
一、编程基础(共5题,每题10分,总分50分)
1.题目:
实现一个函数,输入一个正整数`n`,返回`n`的阶乘。要求不使用递归,时间复杂度O(n)。
答案:
cpp
longlongfactorial(intn){
if(n==0)return1;
longlongresult=1;
for(inti=1;i=n;++i){
result=i;
}
returnresult;
}
解析:
阶乘计算本质是连续乘法,非递归实现通过循环逐层累乘即可。时间复杂度为O(n),空间复杂度为O(1)。注意大数问题(如`n=20`时结果超过`longlong`范围,需用高精度计算)。
2.题目:
给定一个字符串`s`,判断是否可以通过翻转字符串中的部分字符使其变为回文串。例如,输入`abccba`返回`true`,输入`abcba`返回`true`,输入`abcde`返回`false`。
答案:
cpp
boolcanBePalindrome(strings){
intleft=0,right=s.size()-1;
intcount=0;//记录可翻转的字符对数
while(leftright){
if(s
原创力文档

文档评论(0)