Ce soir, c'est la nuit du jeu de cartes! Vous êtes le croupier et votre tâche est d'écrire un programme pour distribuer les cartes aux joueurs.
Étant donné un tableau de cartes et le nombre de joueurs, vous devez diviser le tableau de cartes en une main pour chaque joueur.
Règles
Votre programme recevra un tableau non vide A
, ainsi qu'un entier positif non nul n
. Le tableau doit ensuite être divisé en n
mains. Si la longueur de la chaîne n'est pas divisible par n
les restes, les cartes à la fin doivent être réparties aussi uniformément que possible.
- Si
n==1
, vous devrez retourner un tableau de tableau avecA
comme seul élément Si
n
est supérieur à la longueur deA
, vous devrez retourner chaque main et une main vide. sin = 4
etarray A = [1,2,3]
, vous devez retourner[[1],[2],[3]]
ou[[1],[2],[3],[]]
. Vous êtes libre de gérer la main vide avec vide, indéfini ou nul.Le tableau peut contenir n'importe quel type plutôt qu'un nombre.
Vous ne devez pas modifier l'ordre du tableau pendant le traitement. Par exemple,
if n = 2
etA= [1,2,3]
, tout résultat plutôt que[[1,3],[2]]
sera invalide.
Cas de test
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],[]]
Programme de démonstration
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)
Il s'agit de code-golf , donc vous serez le gagnant des octets les plus courts de chaque langue.
Inspiré de Create chunks from array par chau giang
0
?