Heute Abend ist Kartenspielabend! Sie sind der Dealer und Ihre Aufgabe ist es, ein Programm zu schreiben, mit dem die Karten an die Spieler ausgegeben werden.
Bei einem vorgegebenen Kartenfeld und der Anzahl der Spieler müssen Sie das Kartenfeld für jeden Spieler in eine Hand aufteilen.
Regeln
Ihr Programm erhält ein nicht leeres Array Asowie eine positive Ganzzahl ungleich Null n. Das Array sollte dann in nHände aufgeteilt werden. Wenn die Länge der Zeichenfolge durch nkeine verbleibenden Karten am Ende teilbar ist, sollte so gleichmäßig wie möglich verteilt werden.
- In diesem Fall
n==1müssen Sie ein Array mit ArrayAals einziges Element zurückgeben Wenn
ngrößer als die Länge von istA, müssen Sie jede Hand und eine leere Hand zurückgeben. wennn = 4undarray A = [1,2,3], solltest du[[1],[2],[3]]oder zurückgeben[[1],[2],[3],[]]. Es steht Ihnen frei, die leere Hand mit leer, undefiniert oder null zu behandeln.Das Array kann einen beliebigen Typ anstelle einer Zahl enthalten.
Sie sollten die Reihenfolge des Arrays während des Handels nicht ändern. Zum Beispiel
if n = 2undA= [1,2,3]jedes Ergebnis[[1,3],[2]]ist ungültig.
Testfälle
n A Output
1 [1,2,3,4,5,6] [[1,2,3,4,5,6]]
2 [1,2,3,4,5,6] [[1,3,5],[2,4,6]]
3 [1,2,3,4,5,6] [[1,4],[2,5],[3,6]]
4 [1,2,3,4,5,6] [[1,5],[2,6],[3],[4]]
7 [1,2,3,4,5,6] [[1],[2],[3],[4],[5],[6]] // or [[1],[2],[3],[4],[5],[6],[]]
Demo-Programm
def deal(cards, n):
i = 0
players = [[] for _ in range(n)]
for card in cards:
players[i % n].append(card)
i += 1
return players
hands = deal([1,2,3,4,5,6], 2)
print(hands)
Dies ist Code-Golf , so dass Sie die kürzesten Bytes jeder Sprache gewinnen.
Inspiriert von Create chunks from array von chau giang
0?
