- 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)