滴出行软件开发面试题集.docxVIP

  • 1
  • 0
  • 约6.49千字
  • 约 18页
  • 2026-02-11 发布于福建
  • 举报

第PAGE页共NUMPAGES页

2026年滴出行软件开发面试题集

一、编程基础(3题,每题10分,共30分)

1.题目:

请用Python实现一个函数,输入一个字符串,返回该字符串中所有唯一字符的列表(不区分大小写)。例如,输入`HelloWorld`,输出`[H,e,l,o,W,r,d]`。

答案与解析:

python

defunique_chars(s):

lower_s=s.lower()

unique_set=set(lower_s)

returnlist(unique_set)

示例

print(unique_chars(HelloWorld))#输出:[H,e,l,o,W,r,d]

解析:

-首先将字符串转为小写,确保不区分大小写。

-使用`set`去重,因为集合自动过滤重复元素。

-最后将集合转回列表即可。

2.题目:

用Java实现一个方法,判断一个整数是否为完全平方数。例如,输入`16`,返回`true`;输入`14`,返回`false`。

答案与解析:

java

publicbooleanisPerfectSquare(intnum){

if(num0)returnfalse;

intsqrt=(int)Math.sqrt(num);

returnsqrtsqrt==num;

}

解析:

-负数不是完全平方数,直接返回`false`。

-计算平方根并向下取整,若平方后等于原数,则为完全平方数。

3.题目:

用C++实现快速排序算法,对整数数组进行降序排序。

答案与解析:

cpp

includevector

usingnamespacestd;

voidquickSort(vectorintarr,intleft,intright){

if(left=right)return;

intpivot=arr[left];

intl=left,r=right;

while(lr){

while(lrarr[r]=pivot)r--;

arr[l]=arr[r];

while(lrarr[l]=pivot)l++;

arr[r]=arr[l];

}

arr[l]=pivot;

quickSort(arr,left,l-1);

quickSort(arr,l+1,right);

}

//示例

intmain(){

vectorintarr={3,1,4,1,5};

quickSort(arr,0,arr.size()-1);

for(intnum:arr)coutnum;//输出:54311

return0;

}

解析:

-选择基准值(这里取左边界),通过双指针法将数组分为大于和小于基准的两部分。

-递归对左右子数组进行排序。

二、数据结构与算法(5题,每题12分,共60分)

1.题目:

用Java实现二叉搜索树(BST),支持插入和查找操作。

答案与解析:

java

classTreeNode{

intval;

TreeNodeleft,right;

TreeNode(intx){val=x;}

}

publicclassBST{

TreeNoderoot;

publicvoidinsert(intval){

root=insertRec(root,val);

}

privateTreeNodeinsertRec(TreeNodenode,intval){

if(node==null)returnnewTreeNode(val);

if(valnode.val)node.left=insertRec(node.left,val);

elseif(valnode.val)node.right=insertRec(node.right,val);

returnnode;

}

publicbooleansearch(intval){

returnsearchRec(root,val)!=null;

}

privateTreeNodesearchRec(TreeNodenode,intval){

if(node==null||node.val==val)returnnode;

returnvalnode.val?searchRec(node.left,val):search

文档评论(0)

1亿VIP精品文档

相关文档