Stasera è la notte dei giochi di carte! Sei il banco e il tuo compito è scrivere un programma per distribuire le carte ai giocatori.
Dato un array di carte e il numero di giocatori, devi dividere l'array di carte in una mano per ogni giocatore.
Regole
Il programma riceverà un array non vuoto A
, nonché un numero intero positivo diverso da zero n
. L'array dovrebbe quindi essere suddiviso in n
mani. Se la lunghezza della stringa non è divisibile per n
le carte rimanenti alla fine dovrebbe essere distribuita nel modo più uniforme possibile.
- In tal caso
n==1
, sarà necessario restituire un array di arrayA
poiché è solo un elemento Se
n
è maggiore della lunghezza diA
, dovrai restituire ogni mano e una mano vuota. sen = 4
earray A = [1,2,3]
, dovresti tornare[[1],[2],[3]]
o[[1],[2],[3],[]]
. Sei libero di gestire la mano vuota con vuoto, indefinito o nullo.L'array può contenere qualsiasi tipo anziché un numero.
Non è necessario modificare l'ordine dell'array durante la negoziazione. Per esempio
if n = 2
eA= [1,2,3]
, qualsiasi risultato piuttosto che[[1,3],[2]]
non sarà valida.
Casi 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],[]]
Demo Program
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)
Questo è code-golf , quindi i byte più brevi di ogni lingua saranno i vincitori.
Ispirato a Crea blocchi dall'array di Chau Giang
0
?