Dzisiaj jest noc gier karcianych! Jesteś rozdającym, a Twoim zadaniem jest napisanie programu rozdawania kart graczom.
Biorąc pod uwagę zestaw kart i liczbę graczy, musisz podzielić zestaw kart na rękę dla każdego gracza.
Zasady
Twój program otrzyma niepustą tablicę A, a także niezerową liczbę całkowitą dodatnią n. Tablicę należy następnie podzielić na nręce. Jeśli długość łańcucha nie jest podzielna przez nresztki kart na końcu, należy je rozłożyć możliwie równomiernie.
- Jeśli
n==1musisz zwrócić tablicę,Aponieważ jest to jedyny element Jeśli
njest większa niż długośćA, musisz zwrócić każdą rękę i pustą rękę. jeślin = 4iarray A = [1,2,3]powinieneś powrócić[[1],[2],[3]]lub[[1],[2],[3],[]]. Możesz obsługiwać pustą rękę z pustą, niezdefiniowaną lub zerową.Tablica może zawierać dowolny typ, a nie liczbę.
Podczas transakcji nie powinieneś zmieniać kolejności tablicy. Na przykład
if n = 2iA= [1,2,3]dowolny wynik zamiast[[1,3],[2]]będzie nieprawidłowy.
Przypadki testowe
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],[]]
Program demonstracyjny
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)
To jest golf golfowy , więc wygrasz najkrótsze bajty każdego języka.
Zainspirowany przez Utwórz fragmenty z tablicy przez chau giang
0 ?
