¡Esta noche es la noche del juego de cartas! Usted es el distribuidor y su tarea es escribir un programa para repartir las cartas a los jugadores.
Dado un conjunto de cartas y la cantidad de jugadores, debes dividir el conjunto de cartas en una mano para cada jugador.
Reglas
Su programa recibirá una matriz no vacía A, así como un entero positivo no cero n. La matriz debería dividirse en nmanos. Si la longitud de la cadena no es divisible por nlas cartas sobrantes al final, debe distribuirse de la manera más uniforme posible.
- Si
n==1, tendrá que devolver una matriz de matriz conAsu único elemento Si
nes mayor que la longitud deA, deberá devolver cada mano y una mano vacía. sin = 4yarray A = [1,2,3], debe regresar[[1],[2],[3]]o[[1],[2],[3],[]]. Usted es libre de manejar la mano vacía con vacía, indefinida o nula.La matriz puede contener cualquier tipo en lugar de un número.
No debe cambiar el orden de la matriz mientras trata. Por ejemplo
if n = 2yA= [1,2,3], cualquier resultado en lugar de[[1,3],[2]]será inválido.
Casos de prueba
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 demostración
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)
Este es el código de golf , por lo que los bytes más cortos de cada idioma serán los ganadores.
Inspirado en Crear fragmentos de matriz por chau giang
0?
