技术职位面试题及答案.docxVIP

  • 0
  • 0
  • 约7.21千字
  • 约 21页
  • 2026-01-25 发布于福建
  • 举报

第PAGE页共NUMPAGES页

2026年技术职位面试题及答案

一、编程语言与基础算法(共5题,总分25分)

1.题目(5分):

请用Python实现一个函数,输入一个字符串,返回该字符串中所有唯一字符的列表。例如,输入abracadabra,返回[a,b,c,d]。

答案:

python

defunique_chars(s):

count={}

forcharins:

count[char]=count.get(char,0)+1

return[charforcharinsifcount[char]==1]

解析:

使用哈希表统计每个字符的出现次数,最后筛选出现次数为1的字符。时间复杂度O(n),空间复杂度O(n)。

2.题目(5分):

给定一个链表,请判断该链表是否存在环。要求不使用额外空间。

答案:

python

classListNode:

def__init__(self,x):

self.val=x

self.next=None

defhas_cycle(head):

slow,fast=head,head

whilefastandfast.next:

slow=slow.next

fast=fast.next.next

ifslow==fast:

returnTrue

returnFalse

解析:

快慢指针法,快指针每次移动两步,慢指针每次移动一步,若有环则快慢指针会相遇。

3.题目(5分):

请用Java实现快速排序算法,并说明其时间复杂度。

答案:

java

publicclassQuickSort{

publicstaticvoidquickSort(int[]arr,intleft,intright){

if(leftright){

intpivotIndex=partition(arr,left,right);

quickSort(arr,left,pivotIndex-1);

quickSort(arr,pivotIndex+1,right);

}

}

privatestaticintpartition(int[]arr,intleft,intright){

intpivot=arr[right];

inti=left-1;

for(intj=left;jright;j++){

if(arr[j]=pivot){

i++;

swap(arr,i,j);

}

}

swap(arr,i+1,right);

returni+1;

}

privatestaticvoidswap(int[]arr,inti,intj){

inttemp=arr[i];

arr[i]=arr[j];

arr[j]=temp;

}

}

解析:

快速排序的平均时间复杂度O(nlogn),最坏情况O(n2)。时间复杂度与基准点的选择有关。

4.题目(5分):

请解释什么是RESTfulAPI,并举例说明如何设计一个符合RESTful规范的API。

答案:

RESTfulAPI是一种基于HTTP协议的架构风格,遵循以下原则:

1.使用HTTP方法(GET,POST,PUT,DELETE)表示操作;

2.资源统一标识符(URI);

3.无状态通信。

例如,设计一个用户管理API:

-获取所有用户:`GET/users`

-获取单个用户:`GET/users/{id}`

-创建用户:`POST/users`

-更新用户:`PUT/users/{id}`

-删除用户:`DELETE/users/{id}`

解析:

RESTfulAPI强调资源化设计,通过URI唯一标识资源,并通过HTTP方法表达操作类型。

5.题目(5分):

请用C++实现一个无重复数字的排列,例如输入[1,2,3],输出[[1,2,3],[1,3,2],[2,1,3]...]。

答案:

cpp

includevector

includealgorithm

usingnamespacestd;

voidpermute(vectorintnums,intstart,vectorvectorintres){

if(start==nums.size()){

res.emplace_back(nums);

return;

}

for(inti=start;inums.size();++i){

swap(nums[s

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档