5月12日美团笔试春招在线笔试+代码分享

第一题:100 期末考试
第二题:64 汉明距离
第三题:18 灾难预测
第四题:0 字符串匹配
第五题:9 相似度


import sys
if __name__ == "__main__":
    """
    n,m=5,5
    values=[[96 ,35,38 ,10 ,19 ],
[4, 76 ,72, 38 ,86 ],
[95 ,80 ,81 ,17 ,10 ],
[70 ,64 ,86 ,85 ,10 ],
[1 ,93 ,19 ,34 ,41]]
"""
    # 读取第一行的n
    inpu=list(map(lambda x:int(x),list(input().split())))
    n=inpu[0]
    m=inpu[1]
    best=[-1]*m
    index=[[-1]]*m
    price=[0]*n
    ans = 0
    for i in range(n):
        # 读取每一行
        line = sys.stdin.readline().strip()
        # 把每一行的数字分隔后转化成int列表
        values = list(map(int, line.split()))
        for key,v in enumerate(values):
            if v>best[key]:
                best[key]=v
                index[key]=[]
                index[key].append(i)
            elif v==best[key]:
                index[key].append(i)
    print(best)
    print(index)
    for i in range(m):
        if not best[i]==-1:
            for j in range(len(index[i])):
                price[index[i][j]]=1   
    print(price)
    print(sum(price))

n=4
m=5
value=[
[2,4],
[1, 3],
[2, 3],
[1,4],
[2 ,3]]
place=[0]*(n+1)
for i in range(m):
    op,pos=value[i][0],value[i][1]
    if op==1:
        place[pos]=-1
    if op==2:
        flag=0
        for j in range(pos,n+1):
            if place[j]==0:
                print(j)
                flag=1
                break
        if flag==0: print(-1)
        


def Search (a, l, r, x): 
    if r >= l: 
        mid = int(l + (r - l)/2)
        if a[mid] == x: 
            return mid 

        elif a[mid] > x: 
            return Search(a, l, mid-1, x) 
        else: 
            return Search(a, mid+1, r, x) 
    else: 
        return -1
#inpu=list(map(lambda x:int(x),list(input().split())))
#n=inpu[0]
#m=inpu[1]
n=4
m=5
b=0
value=[
[2,4],
[1, 3],
[2, 3],
[1,4],
[2 ,3]]
place=[]
for i in range(m):
    #inpu=list(map(lambda x:int(x),list(input().split())))
    #op,pos=inpu[0],inpu[1]
    op,pos=value[i][0],value[i][1]
    if op==1:
        result = Search(place, 0, len(place)-1, pos) 
        if result==-1:
            place.append(pos)
            b=b+1
    if op==2:
        place=sorted(place)
        flag=0
        if b==n :
            print(-1) 
            continue
        for j in range(pos,n+1):
            result = Search(place, 0, len(place)-1, j) 
            if result==-1:
                print(j)
                flag=1
                break
        if flag==0: print(-1)



#m=list(map(lambda x:int(x),list(input().split())))
#a=list(map(lambda x:int(x),list(input().split())))
m=4
a=[3 ,5, 6 ,1]
ans=[-1]*(m)
for i in range(m):
    if ans[i]==1:
        continue
    for j in range(i+1,m):
        if a[i] & a [j]==0:
            ans[i]=1
            ans[j]=1
for i in range(m):print(ans[i],end=" ")


#美团笔试##笔试题目##美团#
全部评论
我今天做美团笔试,真的感觉很简单呀,不如其他厂的难度
1 回复
分享
发布于 2020-05-12 12:13
可以加微信建个讨论群:poemsfuture
1 回复
分享
发布于 2020-05-12 14:36
联想
校招火热招聘中
官网直投
请问楼主报的什么岗位鸭
点赞 回复
分享
发布于 2020-05-12 12:18
避难所那题,我用java开辟数组来存储每个避难所的状态,但是出现堆内存不足的问题,有大佬知道要怎样解决吗
点赞 回复
分享
发布于 2020-05-12 12:24
第一题:ac a= list(map(int,input().split())) student =a[0] major = a[1] get_ward = [0]*student all = [] for _ in range(student):     score = list(map(int,input().split()))     all.append(score) for i in range(major):     max_value = 0     max_index = []     for j in range(student):         if all[j][i]>max_value:             max_index = [j]             max_value = all[j][i]         elif all[j][i]==max_value:             max_index.append(j)     for k in max_index:         get_ward[k]=1 print(sum(get_ward)) 第二题:ac n = int(input()) l = list(map(int,input().split())) l = l[:n] max_value= 0 for i in range(n-1):     for j in range(i+1,n):         c = bin(l[i]^l[j]).count("1")         if c > max_value:             max_value = c print(max_value)
点赞 回复
分享
发布于 2020-05-12 14:24
第三题:  9% l = list(map(int,input().split())) n = l[0] m = l[1] destroy = {} all = [] for _ in range(m):     temp = list(map(int,input().split()))     all.append(temp) for temp in all:     op=temp[0]     pos = temp[1]     if op ==1:         destroy[pos] = -1     elif op==2:         if pos+1 not in destroy and pos<n:             print(pos+1)         elif pos==n and pos not in destroy:             print(pos)         else:             print(-1) 第四题:55% s = input() K = int(input()) length = len(s) count = 0 for i in range(K,length-K):     for v in range(K,min(i+1,len(s)-i)):         for j in range(1,len(s)-v):             if s[i-v:i]==s[i+j:i+v+j]:                 count =count+1 print(count) 第五题:还没写完就强制交卷了。。。
点赞 回复
分享
发布于 2020-05-12 14:26
有人知道第三题和第四题的正确解法吗
点赞 回复
分享
发布于 2020-05-12 14:28
一45二100三45还是9忘了四0五9还是45忘了
点赞 回复
分享
发布于 2020-05-12 17:05
一二通过,三题9,四题没做,最后直接输出一个8,得了9,五题45😅,三题比较郁闷,看逻辑没啥问题
点赞 回复
分享
发布于 2020-05-12 17:28
只a了前两道100,没任何通知,凉了吗😭
点赞 回复
分享
发布于 2020-05-12 19:48
第三题内存超限,第五题时间超限,我傻了
点赞 回复
分享
发布于 2020-05-12 19:53
第一题ac 第二题ac 第三题27% 第四题直接跳过 第五题54% 凉凉啊
点赞 回复
分享
发布于 2020-05-12 21:40
不知道什么时候出结果😂
点赞 回复
分享
发布于 2020-05-12 21:43
请问大家,赛码网最终成绩是最高的一次提交,还是最终交卷时保留的代码,还是每题的最后一次提交呀😂
点赞 回复
分享
发布于 2020-05-12 22:15
欸其实我不明白为什么第4题会内存溢出/运行错误,现在想会不会他的测试有问题
点赞 回复
分享
发布于 2020-05-12 22:16
美团还能投吗
点赞 回复
分享
发布于 2020-05-14 11:33
大家结果出来了吗?如果笔试没过有没有拒信啊?等得好慌
点赞 回复
分享
发布于 2020-05-18 12:30

相关推荐

投递美团等公司10个岗位
点赞 评论 收藏
转发
10 26 评论
分享
牛客网
牛客企业服务