你能好心人請告訴我,爲什麼這個節目對我的最終失敗,每一次提交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擊掌也一致。 –