4.2虾皮笔试

选择题一如既往的不会。编程题第一题ac了,第二题60%,第三题0。
三道编程题是核心代码模式,比当初美团的ACM模式好一点。
第一题比较简单,用了个字典记录一下就过了。第二题感觉写的挺对,但只有60%(或许是超时?),第三题比较抽象,确实搞不出来。
#第一题
import collections
class Solution:
def findBall(self, nums) :
# write code here
n,ans=len(nums),[]
idx=collections.defaultdict(int)
for i in range(n):
idx[nums[i]]+=1
for i in range(n):
if idx[nums[i]]>=(n/4):
if nums[i] not in ans:
ans.append(nums[i])
return sorted(ans)
#第二题
import collections
class Solution:
def homework(self, input) :
N,m,seed=input
ans=[]
# write code here
for i in range(m):
a=(359*i+199*seed)%N+1
b=(101*i+53*seed)%N+1
n=(13*i+277*seed)%10+1
ans.append([min(a,b),max(a,b),n])
idx=collections.defaultdict(int)
lans=len(ans)
for i in range(lans):
a1,b1,c1=ans[i]
for j in range(a1,b1+1):
idx[j]+=c1
res=0
for i in range(N):
res+=idx[i+1]*idx[i+1]
return res%10007
#第三题
def findNum(self, N: int) -> int:
# write code here
i = 1
while True:
out = i * N
out = str(out)
if not Counter(out)['0'] + Counter(out)['1'] == len(out):
i += 1
else:
return i
#笔试##投票#
