华为,2019/9/7日,软件笔试题目

第一题 :  AC 100 %
if __name__ == "__main__":
    nums = [int(x) for x in input().strip().split(' ')]
    n = len(nums)
    dp = [-1]*n
    dp[n-1] = 1
    for i in range(n-2, 0, -1):
        tar = i + nums[i]
        if tar < n and dp[tar] >= 0:
            dp[i] = dp[tar] + 1
        else:
            dp[i] = -1

    if max(dp[1:n//2]) <= 0:
        print(-1)
    else:
        res = [x for x in dp[1:n//2] if x>=0]
        print(min(res))

第二题:


没做出来

第三题 : AC 100%



if __name__ == "__main__":
    bd, id, res = input().split(';')
    ids = id.split(',')
    for id in ids:
        a,b = id.split('=')
        bd = bd.replace(a,b)
    bd = bd.replace('{','')
    bd = bd.replace('}','')
    bds = bd.split(',')

    temp_dict = {}
    for bd in bds:
        a,b = bd.split('=')
        temp_dict.update({a:b})
    

    s = temp_dict[res]
    temp_dict.pop(res)


#笔试题目##华为#
全部评论
赶紧比我考的那次难
点赞 回复 分享
发布于 2019-09-08 10:58
第一题代码看不懂,能说说思路吗
点赞 回复 分享
发布于 2019-09-08 11:56
大佬,你第三题代码不完整吧。 s = temp_dict.pop(res) for i in temp_dict:     if i in s:         s = s.replace(i,temp_dict[i]) print(int(eval(s))) 我这样碰到这种字典{[1234]:[123]+[12],[123]:[12]+12:[12]=20},解决不了。求解!
点赞 回复 分享
发布于 2019-09-08 15:28

相关推荐

球球别再泡了:坏,我单9要了14
点赞 评论 收藏
分享
kyw_:接好运
点赞 评论 收藏
分享
评论
5
34
分享
牛客网
牛客企业服务