网易互娱 9.5游戏开发笔试

以为三道题150分钟绰绰有余,结果第一道题做了一个半小时。


第一题:
n,m=map(int,input().split())
nums=list(map(int,input().split()))
ans=[[0] for _ in range(len(nums)+1)]
for i in range(len(nums)):
    ans[i+1][0]=nums[i]
    
for _ in range(m):
    path,res=[],[]
    k=int(input())
    for _ in range(k):
        path=list(input().split())
        res.append(path)
    curleft,curright,sum_=[],[],0
    for i in range(len(res)):
        if res[i][0]=='left':
                if res[i][1]=='take':
                    if len(ans[int(res[i][2])])!=1:
                        curleft.append(ans[int(res[i][2])].pop())
                    else:
                        curleft.append(ans[int(res[i][2])][0])
                elif res[i][1]=='return':
                    ans[int(res[i][2])].append(curleft.pop())
                elif res[i][1]=='keep':
                    sum_+=curleft.pop()
        elif res[i][0]=='right':
                if res[i][1]=='take':
                    if len(ans[int(res[i][2])])!=1:
                        curright.append(ans[int(res[i][2])].pop())
                    else:
                        curright.append(ans[int(res[i][2])][0])
                elif res[i][1]=='return':
                    ans[int(res[i][2])].append(curright.pop())
                elif res[i][1]=='keep':
                    sum_+=curright.pop()

    if len(curleft)==1:
        sum_+=curleft.pop()
    if len(curright)==1:
        sum_+=curright.pop()
    print(sum_)


#网易互娱##笔试题目##网易#
全部评论
4个就A出来第1题,第3题不知道哪里没考虑好,结果错误。整体来说,游戏岗的笔试真难受
点赞 回复 分享
发布于 2020-09-05 17:42
为啥还能用py,不是只能C++和java吗。。
点赞 回复 分享
发布于 2020-09-05 17:48
不是有4题吗,为什么投票只有3
点赞 回复 分享
发布于 2020-09-05 18:11
我看他限制语言c++/java直接放弃了
点赞 回复 分享
发布于 2020-09-05 18:17

相关推荐

10-24 20:50
点赞 评论 收藏
分享
评论
3
2
分享
牛客网
牛客企业服务