Đêm nay là đêm chơi bài! Bạn là đại lý và nhiệm vụ của bạn là viết một chương trình để chia bài cho người chơi.
Đưa ra một loạt các thẻ và số lượng người chơi, bạn cần chia mảng thẻ thành một tay cho mỗi người chơi.
Quy tắc
Chương trình của bạn sẽ nhận được một mảng không trống A
, cũng như một số nguyên dương khác không n
. Các mảng nên được chia thành n
tay. Nếu độ dài của chuỗi không chia hết cho n
bất kỳ thẻ còn lại nào ở cuối thì nên phân phối càng đều càng tốt.
- Nếu
n==1
, bạn sẽ cần trả về một mảng vớiA
phần tử duy nhất Nếu
n
lớn hơn chiều dàiA
, bạn sẽ cần trả lại mọi bàn tay và một bàn tay trắng. nếun = 4
vàarray A = [1,2,3]
, bạn nên trở lại[[1],[2],[3]]
hoặc[[1],[2],[3],[]]
. Bạn có thể tự do xử lý bàn tay trống với trống, không xác định hoặc null.Mảng có thể chứa bất kỳ loại nào hơn là một số.
Bạn không nên thay đổi thứ tự của mảng trong khi giao dịch. Ví dụ
if n = 2
vàA= [1,2,3]
, bất kỳ kết quả nào hơn là[[1,3],[2]]
sẽ không hợp lệ.
Các trường hợp thử nghiệm
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],[]]
Chương trình demo
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)
Đây là môn đánh gôn , do đó, các byte ngắn nhất của mỗi ngôn ngữ sẽ là người chiến thắng.
Lấy cảm hứng từ Tạo khối từ mảng bởi chau giang
0
thì sao?