2026年软件工程师面试题及解答指南.docxVIP

  • 0
  • 0
  • 约8.53千字
  • 约 24页
  • 2026-02-06 发布于福建
  • 举报

第PAGE页共NUMPAGES页

2026年软件工程师面试题及解答指南

一、编程语言基础(5题,每题10分,共50分)

题目1(Java基础):

编写一个Java方法,实现将字符串中的所有空格替换为`%20`。假设字符串的长度足够存储替换后的结果,且输入字符串只包含字母、空格和数字。

答案:

java

publicclassReplaceSpaces{

publicstaticStringreplaceSpaces(Strings){

if(s==null)returnnull;

StringBuildersb=newStringBuilder();

for(charc:s.toCharArray()){

if(c==){

sb.append(%20);

}else{

sb.append(c);

}

}

returnsb.toString();

}

publicstaticvoidmain(String[]args){

System.out.println(replaceSpaces(HelloWorld));//输出:Hello%20World

}

}

解析:

-使用`StringBuilder`提高字符串拼接效率。

-遍历字符串,遇到空格替换为`%20`,其他字符直接追加。

-时间复杂度O(n),空间复杂度O(n)。

题目2(Python基础):

实现一个函数,接收一个列表,返回列表中所有偶数的平方和。

答案:

python

defsum_of_even_squares(nums):

returnsum(xxforxinnumsifx%2==0)

示例

print(sum_of_even_squares([1,2,3,4,5]))#输出:20(4+16)

解析:

-列表推导式过滤偶数并计算平方。

-`sum()`函数聚合结果。

-时间复杂度O(n),空间复杂度O(1)。

题目3(C++基础):

给定一个整数数组,返回其中缺失的最小正整数。假设数组中的整数范围在`[1,n]`内,且数组不重复。

答案:

cpp

includevector

includealgorithm

intfirstMissingPositive(std::vectorintnums){

intn=nums.size();

for(inti=0;in;++i){

while(nums[i]=1nums[i]=nnums[nums[i]-1]!=nums[i]){

std::swap(nums[nums[i]-1],nums[i]);

}

}

for(inti=0;in;++i){

if(nums[i]!=i+1)returni+1;

}

returnn+1;

}

解析:

-通过原地哈希将数字`x`放到索引`x-1`处。

-最后遍历数组,第一个不匹配的位置即为缺失数字。

-时间复杂度O(n),空间复杂度O(1)。

题目4(JavaScript基础):

实现一个`Promise`,模拟异步获取用户信息(如`{id:1,name:张三}`),并在成功后打印用户名。

答案:

javascript

functionfetchUserInfo(){

returnnewPromise((resolve,reject)={

setTimeout(()={

resolve({id:1,name:张三});

},1000);

});

}

fetchUserInfo().then(user=console.log());//输出:张三

解析:

-`setTimeout`模拟异步操作。

-`Promise`的`resolve`回调返回用户数据。

-`.then()`处理成功结果。

题目5(Go基础):

编写一个Go函数,统计字符串中每个字符的出现次数,并以`map`形式返回。

答案:

go

packagemain

import(

fmt

)

funccountChars(sstring)map[rune]int{

count:=make(map[rune]int)

for_,char:=ranges{

count[char]++

}

returncount

}

funcmain(){

fmt.Println(countChars(Hello))//输出:{H:1,e:1,l:2,o:1}

}

解析:

-`rune`类型表

文档评论(0)

1亿VIP精品文档

相关文档