查找最少的字母数以获得最终值

时间:2019-07-19 13:43:50

标签: python

我有一个字母,每个字母都具有从A到E的权重,我也知道finalvalue是8。基本上,我需要找到字母的组合(+),它们的总和为finalcount,而字母数最少。     (例如:8可以是(A + E)或(A + B + C),但结果应该是A + E,因为我们只使用了2个字母)

A = 1
B = A*2+ 1
C = 4
D = 1
E =  B*1 + 4
finalvalue = 8

minimum = float("inf")
dict1 = {"A": 1, "B": 3, "C": 4, "D": 1, "E": 7 }
value_chosen = 8
string1 = ""
for i, j in dict1.items():
    if abs(j - value_chosen) < minimum:
        final_value = j
        minimum = abs(j - value_chosen)

print(final_value)

# Here i am getting value 7 , then reading that to string

x = (list(dict1.keys())[list(dict1.values()).index(final_value)])
string1 = string1 + x
print(string1)

然后尝试将其删除,并遍历其余部分以匹配finalvalue,但没有成功。。有人可以在这里帮助我如何在没有复杂算法的情况下完成此代码(因为我是初学者)

0 个答案:

没有答案