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