你能好心人请告诉我,为什么这个节目对我的最终失败,每一次提交codewars,我似乎无法弄清楚。他们甚至没有提供失败的实际字符串,所以我只是尝试各种不同的组合,迄今为止所有这些组合都已完美运行。我不是故意欺骗或任何事情,但坦率地说,我很沮丧,并不知道还有什么要做。错误的数学程序
的节目基本上应该扫描“人”的单25,50或100美元的钞票名单列表的顺序,并计算是否有足够的零钱卖给他们所有的电影票。票价25美元。该计划没有任何金钱或变化,所以它基本上必须处理它从线上得到的东西。如果整行可以被处理,程序应该返回一个字符串“YES”,否则返回“NO”。
因此,例如,[25,25,50,100]应该返回一个肯定的,等...
这里是我的代码 -
def tickets(x):
t = 0
f = 0
h = 0
lst = []
for i in x:
if i==25:
t+=1
lst.append('c')
elif i==50:
if t>=1:
t-=1
f+=1
lst.append('c')
else:
lst.append('u')
elif i == 100:
if t>=3:
t-=3
h+=100
elif f>=1 and t>=1:
f-=1
t-=1
lst.append('c')
else:
lst.append('u')
if 'u' not in lst:
return "YES"
else:
return "NO"
识别错误任何帮助,将不胜感激。谢谢 !
的第一个建议是使用有意义的名称变量。 'lst','t'或'F'传达任何关于在这使得很多困难阅读和理解程序的上下文中的变量。 –
如果有人有一百你持有3二十五岁以下儿童和50,不要放弃你的所有25个的。给他们一个50和25,并保持你的25s,如果下一个人给你一个50。在i == 100,切换你的if和elif。 (:有没有25美元的钞票,至少不是美国$除外),你应该添加C到你的列表,当你给100改变与三张25击掌也一致。 –