网易游戏开发顾问面试题参考.docxVIP

  • 2
  • 0
  • 约4.44千字
  • 约 12页
  • 2026-02-11 发布于福建
  • 举报

第PAGE页共NUMPAGES页

2026年网易游戏开发顾问面试题参考

一、编程能力测试(共3题,每题20分)

1.题目(20分):

编写一个函数,实现将任意长度的二进制字符串(例如1010101)转换为十进制整数。要求:

(1)不使用内置的`int()`或`bin()`等转换函数;

(2)处理输入为空字符串或非二进制字符的情况时,返回`0`;

(3)考虑边界条件,如输入为0000时仍返回`0`。

答案与解析:

python

defbin_to_decimal(binary_str):

ifnotbinary_strornotall(cin01forcinbinary_str):

return0

decimal=0

forcharinbinary_str:

decimal=decimal2+int(char)

returndecimal

解析:

-判断输入是否为空或包含非二进制字符,若不满足条件则直接返回`0`;

-使用循环遍历每个字符,通过位运算实现转换:当前位的值是前一位的`2倍加当前位的数值`;

-边界测试:`0000`会逐位计算为`0`,符合预期。

2.题目(20分):

实现一个LRU(最近最少使用)缓存,支持`get(key)`和`put(key,value)`操作。要求:

(1)缓存容量固定为`3`,超出时需淘汰最久未使用的元素;

(2)`get()`操作若命中则返回值并更新使用顺序,未命中返回`-1`;

(3)`put()`操作若已存在则覆盖值并更新顺序,否则插入并淘汰最久未使用元素。

答案与解析:

python

classLRUCache:

def__init__(self,capacity=3):

self.cache={}

self.capacity=capacity

self.order=[]

defget(self,key):

ifkeynotinself.cache:

return-1

self.order.remove(key)

self.order.append(key)

returnself.cache[key]

defput(self,key,value):

ifkeyinself.cache:

self.order.remove(key)

eliflen(self.cache)=self.capacity:

oldest_key=self.order.pop(0)

delself.cache[oldest_key]

self.cache[key]=value

self.order.append(key)

解析:

-使用字典`cache`存储键值对,列表`order`记录使用顺序;

-`get()`操作通过`order`列表维护最近使用顺序,命中则移动至末尾;

-`put()`操作先判断是否覆盖,若容量满则删除最久未使用的元素(`order[0]`)。

3.题目(20分):

给定一个包含`n`个整数的数组,找出所有和为`target`的三个整数,且这三个整数不能重复使用。要求:

(1)返回所有不重复的三元组;

(2)三元组按升序排列,且结果集不能有重复的三元组(如`[-1,0,1]`和`[0,-1,1]`视为相同)。

答案与解析:

python

defthree_sum(nums,target):

nums.sort()

n=len(nums)

result=[]

foriinrange(n):

ifi0andnums[i]==nums[i-1]:

continue

left,right=i+1,n-1

whileleftright:

total=nums[i]+nums[left]+nums[right]

iftotal==target:

result.append([nums[i],nums[left],nums[right]])

whileleftrightandnums[left]==nums[left+1]:

left+=1

whileleftrightandnums[right]==nums[right-1]:

right-=1

left+=1

right-=1

eliftotaltarget:

left+=1

else:

right-=1

returnresult

解析:

-首先对数组排序,便于跳过重复元素;

-双指针法:固定一个数,然后用`left`和`right`分别向中间移动,寻找和为`tar

文档评论(0)

1亿VIP精品文档

相关文档