- 0
- 0
- 约6.24千字
- 约 18页
- 2026-01-21 发布于福建
- 举报
第PAGE页共NUMPAGES页
2026年微软件工程师面试全攻略及答案详解
一、编程基础(5题,每题10分,共50分)
1.题目:
给定一个非负整数`n`,编写一个函数,返回`n`的二进制表示中`1`的个数。例如,输入`n=11`(二进制为`1011`),输出`3`。
答案:
cpp
intcountBits(intn){
intcount=0;
while(n){
count+=n1;
n=1;
}
returncount;
}
解析:
使用位运算,每次将`n`右移一位,并统计最低位的`1`的数量。时间复杂度O(logn),空间复杂度O(1)。
2.题目:
实现一个函数`reverseWords`,将输入的字符串`s`中的单词顺序反转,但每个单词内部的字符顺序不变。例如,输入`theskyisblue`,输出`blueisskythe`。
答案:
cpp
stringreverseWords(strings){
vectorstringwords;
stringword;
for(charc:s){
if(c==){
if(!word.empty()){
words.push_back(word);
word.clear();
}
}else{
word+=c;
}
}
if(!word.empty())words.push_back(word);
stringresult;
for(inti=words.size()-1;i=0;--i){
result+=words[i];
if(i!=0)result+=;
}
returnresult;
}
解析:
先按空格分割字符串,将单词存入向量中,然后按倒序拼接。时间复杂度O(n),空间复杂度O(n)。
3.题目:
给定一个字符串`s`,判断它是否是回文串。假设只包含字母和数字,忽略大小写。例如,输入`Aman,aplan,acanal:Panama`,输出`true`。
答案:
cpp
boolisPalindrome(strings){
intleft=0,right=s.size()-1;
while(leftright){
while(leftright!isalnum(s[left]))left++;
while(leftright!isalnum(s[right]))right--;
if(tolower(s[left])!=tolower(s[right]))returnfalse;
left++;
right--;
}
returntrue;
}
解析:
双指针法,忽略非字母数字字符,并比较对应位置的字符是否相等。时间复杂度O(n),空间复杂度O(1)。
4.题目:
实现一个函数`merge`,将两个有序数组`nums1`和`nums2`合并成一个新的有序数组。假设`nums1`的空间足够容纳`nums2`的元素。例如,输入`nums1=[1,2,3]`,`nums2=[2,5,6]`,输出`[1,2,2,3,5,6]`。
答案:
cpp
voidmerge(vectorintnums1,intm,vectorintnums2,intn){
intp1=m-1,p2=n-1,p=m+n-1;
while(p1=0p2=0){
nums1[p--]=(nums1[p1]nums2[p2])?nums1[p1--]:nums2[p2--];
}
while(p2=0){
nums1[p--]=nums2[p2--];
}
}
解析:
从后向前合并,避免覆盖`nums1`的元素。时间复杂度O(m+n),空间复杂度O(1)。
5.题目:
给定一个链表,删除链表的倒数第`n`个节点,并返回新链表的头节点。例如,输入`head=[1,2,3,4,5]`,`n=2`,输出`[1,2,3,5]`。
答案:
cpp
ListNoderemoveNthFromEnd(ListNodehead,intn){
ListNodedummy=newListNode(0);
dummy-next=head;
ListNodefast=dummy,slow=dummy;
for(inti=0;in;++i
您可能关注的文档
最近下载
- 冠心病的预防保健知识ppt课件.pptx VIP
- 2025年中国半导体封装测试行业市场规模报告.docx
- 下腔静脉滤器置入术和取出术规范PPT课件.pptx VIP
- ASTM E595-15美国材料与试验协会标准.pdf VIP
- 房地产项目操盘方案.docx VIP
- 60个岗位风险告知卡汇编.pptx VIP
- MG3000-T4简明用户手册(SIP协议).doc VIP
- 一年级数学上册人教版53全优卷.pdf
- 2023第十三届华东区大学生CAD应用技能竞赛机械工程图绘制试题.docx VIP
- 五轴加工中心编程与仿真 课件全套 单元1 宇龙机械加工仿真软件的安装、启动与授权等 ---多轴零件综合编程实例.pptx
原创力文档

文档评论(0)