Ich habe versucht, die oben betitelte Codewars 6-Kyu-Kata zu lösen, die die folgende Anforderung hat:
Gegeben sind zwei Arrays a und b, schreiben Sie eine Funktion comp(a, b) (oder
), der prüft, ob die beiden Arrays die „gleichen“ Elemente mit den gleichen Multiplizitäten haben (die Multiplizität eines Mitglieds ist die Häufigkeit, mit der es erscheint). „Gleich“ bedeutet hier, dass die Elemente in b die Elemente in a im Quadrat sind, unabhängig von der Reihenfolge.
Ich habe diesen Code versucht:
Code: Select all
def comp(array1, array2):
truth_list = []
if array1 and array2:
for i in array1:
if i*i in array2:
truth_list.append(True)
del array2[array2.index(i*i)]
else: truth_list.append(False)
else: return False
return all(truth_list)
Es ist für fast jeden Testfall korrekt, mit Ausnahme des 5. Testfalls. Welchen Fehler habe ich gemacht?
Hier ist der Link zur Kata.