आज रात कार्ड गेम की रात है! आप डीलर हैं और आपका काम खिलाड़ियों को कार्ड देने का कार्यक्रम लिखना है।
कार्ड की एक सरणी और खिलाड़ियों की संख्या को देखते हुए, आपको प्रत्येक खिलाड़ी के लिए कार्ड के सरणी को एक हाथ में विभाजित करने की आवश्यकता है।
नियम
आपके कार्यक्रम को एक गैर-खाली सरणी 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)
यह कोड-गोल्फ है , इसलिए आप प्रत्येक भाषा के सबसे छोटे बाइट्स विजेता होंगे।
Cha giang द्वारा सरणी से विखंडू बनाएँ से प्रेरित
0?
