华为第三题
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的答案哇~~
#华为##笔试题目#