Сьогодні вночі - карткова ніч! Ви є дилером, і ваше завдання - написати програму для роздачі карт гравцям.
Враховуючи масив карток та кількість гравців, вам потрібно розділити масив карт у руку для кожного гравця.
Правила
Ваша програма отримає не порожній масив A, а також ненульове додатне ціле число n. Потім масив слід розділити на nруки. Якщо довжина рядка не розділяється nжодними картками, що залишилися в кінці, слід розподілити якомога рівномірніше.
- Якщо
n==1вам потрібно буде повернути масив масиву,Aоскільки він є лише елементом Якщо
nбільша довжинаA, вам потрібно буде повернути кожну та порожню руку. якщоn = 4іarray A = [1,2,3], ви повинні повернути[[1],[2],[3]]або[[1],[2],[3],[]]. Ви можете обробляти порожню руку порожньою, невизначеною або нульовою.Масив може містити будь-який тип, а не число.
Не слід змінювати порядок масиву під час роботи. Наприклад,
if n = 2іA= [1,2,3]будь-який результат, а не[[1,3],[2]]буде недійсним.
Випробування
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],[]]
Демонстраційна програма
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)
Це код-гольф , тож найкоротший байт кожної мови стане переможцем.
Натхненний з Створити шматки з масиву з допомогою Чау Жанг
0?
