2026年阿里巴面试题集及答案解析.docxVIP

  • 0
  • 0
  • 约4.18千字
  • 约 13页
  • 2026-01-27 发布于福建
  • 举报

第PAGE页共NUMPAGES页

2026年阿里巴面试题集及答案解析

一、编程能力测试(共5题,每题10分)

题目1(Java基础)

编写一个Java方法,实现将一个字符串中的所有空格替换为“%20”。要求不使用任何现成的字符串替换函数,时间复杂度为O(n)。

答案解析

java

publicclassStringReplace{

publicstaticStringreplaceSpaces(Strings){

if(s==null)returnnull;

char[]arr=s.toCharArray();

intspaceCount=0;

for(charc:arr){

if(c==)spaceCount++;

}

char[]result=newchar[arr.length+spaceCount2];

intj=0;

for(inti=0;iarr.length;i++){

if(arr[i]==){

result[j++]=%;

result[j++]=2;

result[j++]=0;

}else{

result[j++]=arr[i];

}

}

returnnewString(result,0,j);

}

publicstaticvoidmain(String[]args){

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

}

}

解析:

1.遍历原字符串统计空格数量,确定新字符串长度。

2.从后往前填充新数组,避免覆盖未处理部分。

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

题目2(Python算法)

给定一个包含重复元素的数组,返回所有不重复的全排列。例如,输入`[1,1,2]`,输出`[[1,1,2],[1,2,1],[2,1,1]]`。

答案解析

python

fromitertoolsimportpermutations

defpermute_unique(nums):

returnlist(set(permutations(nums)))

示例

print(permute_unique([1,1,2]))#输出:[(1,1,2),(1,2,1),(2,1,1)]

解析:

1.`itertools.permutations`生成所有排列,`set`去重。

2.注意Python中元组是不可变对象,适合此场景。

题目3(数据库SQL)

假设有表`Orders`(`order_id,customer_id,order_date`)和`Customers`(`customer_id,name,city`),

编写SQL查询:

-查询每个城市的客户数量,并按数量降序排列。

-如果数量相同,则按城市名称升序排列。

答案解析

sql

SELECTcity,COUNT(DISTINCTcustomer_id)AScustomer_count

FROMCustomers

GROUPBYcity

ORDERBYcustomer_countDESC,cityASC;

解析:

1.`DISTINCT`确保客户不重复计数。

2.`GROUPBY`按城市分组,`ORDERBY`自定义排序规则。

题目4(JavaScript异步编程)

使用`async/await`编写一个函数,实现以下逻辑:

-调用`fetchData()`返回Promise,等待其结果。

-处理结果后,调用`updateUI()`更新界面。

-任何步骤出错需捕获并打印错误。

答案解析

javascript

asyncfunctionprocessData(){

try{

constdata=awaitfetchData();

awaitupdateUI(data);

console.log(UIupdatedsuccessfully);

}catch(error){

console.error(Error:,error);

}

}

//示例用例

functionfetchData(){

returnnewPromise((resolve)={

setTimeout(()=resolve(data),1000);

});

}

functionupdateUI(data){

console.log(Datadisplayed:,data);

}

解析:

1.`

文档评论(0)

1亿VIP精品文档

相关文档