Hoje é noite de jogo de cartas! Você é o dealer e sua tarefa é escrever um programa para distribuir as cartas aos jogadores.
Dada uma série de cartas e o número de jogadores, você precisa dividir a série de cartas em uma mão para cada jogador.
Regras
Seu programa receberá uma matriz não vazia A
, além de um número inteiro positivo diferente de zero n
. A matriz deve ser dividida em n
mãos. Se o comprimento da string não for divisível por n
quaisquer cartões restantes no final, ele deve ser distribuído da maneira mais uniforme possível.
- Se
n==1
, você precisará retornar uma matriz de matriz comA
esse elemento. Se
n
for maior que o comprimento deA
, você precisará retornar todas as mãos e uma mão vazia. sen = 4
earray A = [1,2,3]
, você deve retornar[[1],[2],[3]]
ou[[1],[2],[3],[]]
. Você é livre para lidar com a mão vazia com vazio, indefinido ou nulo.A matriz pode conter qualquer tipo, e não um número.
Você não deve alterar a ordem da matriz ao negociar. Por exemplo
if n = 2
eA= [1,2,3]
, qualquer resultado e não[[1,3],[2]]
será inválido.
Casos de teste
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],[]]
Programa de demonstração
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)
Isso é código-golfe , então você terá os bytes mais curtos de cada idioma.
Inspirado em Criar pedaços da matriz por chau giang
0
?