- 0
- 0
- 约7.8千字
- 约 24页
- 2026-02-11 发布于福建
- 举报
第PAGE页共NUMPAGES页
2026年华威集团技术专家面试指南与答案解析
一、编程基础与算法(10题,每题10分)
1.题目:
请实现一个函数,输入一个非负整数`n`,返回其二进制表示中`1`的个数。例如,输入`5`(二进制`101`),输出`2`。
答案解析:
-答案:
python
defcount_bits(n:int)-int:
count=0
whilen:
count+=n1
n=1
returncount
-解析:
使用位运算,每次将`n`右移一位,统计最低位的`1`的数量。时间复杂度为O(logn)。
2.题目:
给定一个排序数组,编写一个函数,在数组中查找目标值`target`,如果找到返回其索引,否则返回`-1`。要求时间复杂度为O(logn)。
答案解析:
-答案:
python
defbinary_search(nums:List[int],target:int)-int:
left,right=0,len(nums)-1
whileleft=right:
mid=(left+right)//2
ifnums[mid]==target:
returnmid
elifnums[mid]target:
left=mid+1
else:
right=mid-1
return-1
-解析:
二分查找的核心是不断缩小搜索范围,每次比较中间值与目标值,调整左右指针。
3.题目:
请实现一个函数,将一个字符串中的每个空格替换为`%20`。例如,输入`Wearehappy`,输出`We%20are%20happy`。
答案解析:
-答案:
python
defreplace_spaces(s:str)-str:
returns.replace(,%20)
-解析:
使用字符串的`replace`方法直接替换,简单高效。
4.题目:
给定一个链表,判断链表是否存在环。如果存在,返回`True`,否则返回`False`。
答案解析:
-答案:
python
defhas_cycle(head:ListNode)-bool:
slow,fast=head,head
whilefastandfast.next:
slow=slow.next
fast=fast.next.next
ifslow==fast:
returnTrue
returnFalse
-解析:
快慢指针法,快指针每次移动两步,慢指针移动一步,若存在环则两者相遇。
5.题目:
请实现一个函数,输入一个整数数组,返回其所有子集。例如,输入`[1,2,3]`,输出`[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]`。
答案解析:
-答案:
python
defsubsets(nums:List[int])-List[List[int]]:
res=[]
subset=[]
defbacktrack(index):
res.append(subset.copy())
foriinrange(index,len(nums)):
subset.append(nums[i])
backtrack(i+1)
subset.pop()
backtrack(0)
returnres
-解析:
回溯算法,通过递归构建所有可能的子集。
6.题目:
请实现一个函数,输入一个字符串,判断其是否为有效的括号组合。例如,输入`(())`,返回`True`;输入`()[]{}`,返回`True`;输入`([)]`,返回`False`。
答案解析:
-答案:
python
defisValid(s:str)-bool:
stack=[]
mapping={):(,]:[,}:{}
forcharins:
ifcharinmapping:
top=stack.pop()ifstackelse#
ifmapping[char]!=top:
returnFalse
else:
stack.append(char)
returnnotstack
-解析:
使用栈匹配括号,遍历字符串时将左括号入栈,右括号与栈顶比较。
7.题目:
给定一个非空数组,返回其中出现次数超过一半的元素。例如,输入`[3,2,3]`,返回`3`。
答案解析:
-答案:
python
def
原创力文档

文档评论(0)