分享我的华为2019-9-18软件题代码(1、3题)

第一题:
res = []
while True:
    try:
        nums = input().split()
    except Exception:
        break

    if len(nums[0]) == 2 and len(nums[-1]) == 2 and all(len(num) == 1 for num in nums[1:-1]):
        res.append('true')
    elif len(nums[0]) == 1 and len(nums[-1]) == 1 and all(len(num) == 2 for num in nums[1:-1]):
        res.append('true')
    elif len(nums[0]) == 1 and all(len(nums[i]) == 1 for i in range(0, len(nums), 2)) and all(
            len(nums[i]) == 2 for i in range(1, len(nums), 2)):
        res.append('true')
    elif len(nums[0]) == 2 and all(len(nums[i]) == 2 for i in range(0, len(nums), 2)) and all(
            len(nums[i]) == 1 for i in range(1, len(nums), 2)):
        res.append('true')
    else:
        res.append('false')

print(' '.join(res))
第三题:
cmd, content = input().split(':')
if int(cmd) == 1:
    last_server_add_num = int(content.split('_')[1])
    print((last_server_add_num - 1) * 50)
    
elif int(cmd) == 2:
    ascii_sum = sum(ord(c) for c in content)
    print((((ascii_sum % 999 - 1) // 50 + 1) * 50) % 1000)
    
elif int(cmd) == 3:
    servers, token = content.split(';')
    node_nums = [(int(x.split('_')[1]) - 1) * 50 for x in servers.split(',')]
    ascii_sum = sum(ord(c) for c in token)
    node = (((ascii_sum % 999 - 1) // 50 + 1) * 50) % 1000
    if node in node_nums:
        node = (node + 50) % 1000
    print(node)
    
elif int(cmd) == 4:
    last_server_add_num = int(content.split('_')[-1])
    if last_server_add_num % 2 == 1:
        print((last_server_add_num // 2) * 50 + 25)
    else:
        print(500 + (last_server_add_num // 2 - 1) * 50 + 25)
        
elif int(cmd) == 5:
    token = content.split(';')[-1]
    server = content.split(';')[0]
    last_server_add_num = int(server.split('_')[-1])

    add_servers = []
    for i in range(1, last_server_add_num + 1):
        if i % 2 == 1:
            add_servers.append((i // 2) * 50 + 25)
        else:
            add_servers.append(500 + (i // 2 - 1) * 50 + 25)

    ascii_sum = sum(ord(c) for c in token)

    added_num = (((ascii_sum % 999 - 1) // 25 + 1) * 25) % 1000
    non_added_num = (((ascii_sum % 999 - 1) // 50 + 1) * 50) % 1000

    if added_num in add_servers:
        print(added_num)
    else:
        print(non_added_num)

秋招快结束了还是0offer,难受
#华为##笔试题目##吐槽#
全部评论
牛客有回复限制,你有QQ么,我加你
点赞 回复 分享
发布于 2020-09-08 14:42
我QQ:308667086
点赞 回复 分享
发布于 2020-09-08 14:46

相关推荐

M_bao:换个排版吧哥们,看着费劲
点赞 评论 收藏
分享
努力学习的小绵羊:我反倒觉得这种挺好的,给不到我想要的就别浪费大家时间了
点赞 评论 收藏
分享
评论
1
5
分享
牛客网
牛客企业服务