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 nmani. Se la lunghezza della stringa non è divisibile per nle carte rimanenti alla fine dovrebbe essere distribuita nel modo più uniforme possibile.
- In tal caso
n==1, sarà necessario restituire un array di arrayApoiché è solo un elemento Se
nè maggiore della lunghezza diA, dovrai restituire ogni mano e una mano vuota. sen = 4earray 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 = 2eA= [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?
