Ich habe den folgenden Code in CodeWars gefunden und habe die Beschreibung auch geschrieben. Es sagt, mein Code übergibt 8 Testfälle und nicht der 9. Test. Kann mir jemand eine Idee geben, was falsch ist oder wie soll ich weitermachen? Ich hatte nur Zugriff auf die vier Testfälle, die ich als Antwort hatte. https://www.codewars.com/kata/555615a77ebc7c2c8a0000b8/discuss#label-issuenicht sicher, welche Testfälle mein Code
'''
The new "Avengers" movie has just been released! There are a lot of people at the cinema
box office standing in a huge line. Each of them has a single 100, 50 or 25 dollars bill.
A "Avengers" ticket costs 25 dollars. Vasya is currently working as a clerk. He wants to
sell a ticket to every single person in this line. Can Vasya sell a ticket to each person
and give the change if he initially has no money and sells the tickets strictly in the
order people follow in the line? Return YES, if Vasya can sell a ticket to each person
and give the change. Otherwise return NO.
Examples:
### Python ###
tickets([25, 25, 50]) # => YES
tickets([25, 100])
# => NO. Vasya will not have enough money to give change to 100 dollars
'''
def tickets(people):
sum = 0
for p in people:
if p < 25:
return 'NO'
if p == 25:
sum += p
elif p > 25:
if (sum - p) <0 :
return 'NO'
else:
sum += p
return 'YES'
print(tickets([25, 25, 50])) #YES
print(tickets([25, 100])) #NO
print(tickets([25, 25, 50, 50, 50])) #YES
print(tickets([25, 25, 25, 25, 50, 100, 50])) #YES
Ihre letzte else-Anweisung ist das Problem. Die Summe wird um 25 erhöht, nicht um p. Sie gibt die Änderung zurück, nicht wahr? –
mein aktuelles Programm besteht jedoch die im Code gezeigten Tests. Kannst du an einen Testfall denken, dass mein Code fehlschlägt? –
naja gerade realisiert ohne diese else-klausel noch meine vier getesteten testfälle überholt doch noch nicht den neunten testfall in codewars @ Ev.Kounis –