网易互娱 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_)


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

相关推荐

07-03 16:02
门头沟学院 Java
点赞 评论 收藏
分享
05-12 17:00
门头沟学院 Java
king122:你的项目描述至少要分点呀,要实习的话,你的描述可以使用什么技术,实现了什么难点,达成了哪些数字指标,这个数字指标尽量是真实的,这样面试应该会多很多,就这样自己包装一下,包装不好可以找我,我有几个大厂最近做过的实习项目也可以包装一下
点赞 评论 收藏
分享
评论
3
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务