华为第三题

if __name__ == '__main__':
    functions, present, x = input().strip().split(';')
    present_dict = dict()
    present = present.split(',')
    visited = set()
    for p in present:
        key, val = p.split('=')
        present_dict[key] = val
        try:
            int(val)
            visited.add(key)
        except:
            pass
    functions = functions.split(',')
    func_dict = dict()
    #  所有表达式
    for f in functions:
        key, val = f.split('=')
        for pk, pv in present_dict.items():
            val = val.replace(pk, pv)
        val = val.replace('{', '')
        val = val.replace('}', '')
        try:
            func_dict[key] = str(int(eval(val)))
            visited.add(key)
        except:
            func_dict[key] = val
    # 所有表达式都替换为数字
    while len(visited) < len(func_dict) + len(present_dict):
        for key, val in func_dict.items():
            if key not in visited:
                for fk, fv in func_dict.items():
                    val = val.replace(fk, fv)
                for pk, pv in present_dict.items():
                    val = val.replace(pk, pv)
                val = val.replace('{', '')
                val = val.replace('}', '')
                try:
                    func_dict[key] = str(int(eval(val)))
                    visited.add(key)
                except:
                    func_dict[key] = val
        for key, val in present_dict.items():
            if key not in visited:
                for fk, fv in present_dict.items():
                    val = val.replace(fk, fv)
                for pk, pv in present_dict.items():
                    val = val.replace(pk, pv)
                val = val.replace('{', '')
                val = val.replace('}', '')
                try:
                    present_dict[key] = str(int(eval(val)))
                    visited.add(key)
                except:
                    present_dict[key] = val


    # 所求表达式替换
    for pk, pv in present_dict.items():
        x = x.replace(pk, pv)
    for fk, fv in func_dict.items():
        x = x.replace(fk, fv)
    x = x.replace('{', '')
    x = x.replace('}', '')
    print(eval(x))

再求一个第二题ac的答案哇~~

#华为##笔试题目#
全部评论
if __name__ == "__main__":     bd, id, res = input().split(';')     ids = id.split(',')          for id in ids:         a,b = id.split('=')         bd = bd.replace(a,b)     bds = bd.replace('{','').replace('}','').split(',')     temp_dict = dict([ bd.split('=') for bd in bds])     s = temp_dict[res]     temp_dict.pop(res)     for k,v in temp_dict.items():         s = s.replace(k, '('+v+')')     print(int(eval(s)))
点赞 回复
分享
发布于 2019-09-07 21:25
第二题,求个AC啊
点赞 回复
分享
发布于 2019-09-07 21:17
滴滴
校招火热招聘中
官网直投

相关推荐

点赞 评论 收藏
转发
头像
04-29 10:53
已编辑
东北大学 自动化类
点赞 评论 收藏
转发
点赞 5 评论
分享
牛客网
牛客企业服务