คืนนี้เป็นคืนการ์ดเกม! คุณเป็นตัวแทนจำหน่ายและงานของคุณคือการเขียนโปรแกรมเพื่อแจกไพ่ให้ผู้เล่น
เมื่อมีอาร์เรย์ของการ์ดและจำนวนของผู้เล่นคุณจะต้องแบ่งไพ่ออกเป็นมือสำหรับผู้เล่นแต่ละคน
กฎระเบียบ
โปรแกรมของคุณจะได้รับอาเรย์ไม่ว่างเปล่าเช่นเดียวกับที่ไม่ใช่ศูนย์จำนวนเต็มบวก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)
นี่คือโค้ดกอล์ฟดังนั้นคุณจึงไบต์สั้นที่สุดของแต่ละภาษาจะเป็นผู้ชนะ
แรงบันดาลใจจากสร้างชิ้นจากอาร์เรย์โดยchau giang
0?
