इस StackOverflow पोस्ट से प्रेरित है ।
परिचय
बॉब का काम स्प्रेडशीट बनाना और उन्हें व्यवस्थित करना है। जिस तरह से वह उन्हें आयोजित करता है वह बॉब को छोड़कर बहुत कम लोगों को ज्ञात है, लेकिन वह प्रत्येक स्प्रेडशीट की एक सूची बनाता है जो एक ही समूह के अंतर्गत आती हैं। स्प्रेडशीट में डेटा का एक गुच्छा है जो वह बनाता है, लेकिन डेटा का केवल एक टुकड़ा है जिसे हम अभी देख रहे हैं: जिस दिन उसने यह काम शुरू किया था और जिस दिन उसने स्प्रेडशीट बनाई थी, उसके बीच के दिनों की संख्या। पहले दिन उसने दो स्प्रैडशीट बनाईं, उन दोनों को नोट किया 0और उन्हें उनके उचित स्थानों पर छांटा।
अब, उसका बॉस प्रत्येक दिन किस प्रकार की स्प्रेडशीट की समीक्षा करता है, और यह आपके लिए कुछ कोड लिखने का काम है, जो बॉब के लिए समझेगा; उसके पास अभी तक बहुत से स्प्रैडशीट हैं, इसे हाथ से करने के लिए।
इनपुट
बॉब की जानकारी जो वह आपको देता है, एक (0-or-1 अनुक्रमित) दांतेदार सरणी के रूप में आता है जहां प्रत्येक डेटा फॉर्म का है x = a[i][j]। aक्या मैं दांतेदार सरणी को बुला रहा हूं, iस्प्रेडशीट का प्रकार है, और xवह तिथि है जो सरणी बनाई गई थी। jमहत्वहीन है।
काम
उनके प्रकार द्वारा आयोजित स्प्रेडशीट निर्माण दिनों की दांतेदार सरणी को देखते हुए, स्प्रैडशीट प्रकार के द्वारा आयोजित स्प्रेडशीट प्रकारों के दांतेदार सरणी को लौटाएं।
उदाहरण
बॉब केवल इस सार डेटा के साथ आपको छोड़ने वाला नहीं है। उसने मुझे अपने स्प्रेडशीट में से कुछ का एक उपसमूह दिया है ताकि आपको यह पता लगाने में मदद मिल सके कि सब कुछ क्या माना जाता है।
उदाहरण इनपुट (0-अनुक्रमित):
a = [
[3,2,5,0], # Bob doesn't necessarily sort his lists
[1,3],
[2,1,0,4],
[4,5,3],
[6,6]
]
उदाहरण आउटपुट (टिप्पणी के साथ, निश्चित रूप से आवश्यक नहीं है):
output = [
[0,2] # On day 0, Bob made one type 0 and one type 2 spreadsheet
[1,2] # On day 1, Bob made one type 1 and one type 2 spreadsheet
[0,2] # On day 2, Bob made one type 0 and one type 2 spreadsheet
[0,1,3] # On day 3, Bob made one type 0, one type 1, and one type 3 spreadsheet
[2,3] # On day 4, Bob made one type 2 and one type 3 spreadsheet
[0,3] # On day 5, Bob made one type 0 and one type 3 spreadsheet
[4,4] # On day 6, Bob made two type 4 spreadsheets
]
ध्यान दें कि बॉब हमेशा हर दिन दो स्प्रेडशीट नहीं बनाता है, और इसलिए आउटपुट को दांतेदार किया जा सकता है। लेकिन वह हमेशा हर दिन कम से कम एक स्प्रेडशीट बनाता है, इसलिए आउटपुट को खाली सरणियों को रखने की आवश्यकता नहीं होगी - हालांकि यदि आपके आउटपुट में अंत में खाली सरणियाँ हैं, तो आपको उन्हें निकालने की आवश्यकता नहीं है।
अधिक परीक्षण के मामले:
[[3,5,6,2],[0,0,0],[1,0,3,4]] -> [[1,1,1,2],[2],[0],[0,2],[2],[0],[0]]
[[-1]] -> Undefined behavior, as all input numbers will be non-negative integers.
[[0],[0],[],[0]] -> [[0,1,3]]
आउटपुट की आंतरिक सूचियों को क्रमबद्ध करने की आवश्यकता नहीं है।
हमेशा की तरह, कोई मानक खामियां नहीं हैं, और निश्चित रूप से सबसे छोटा कोड जीतता है।
(जैसा कि यह मेरा पहला प्रश्न है, कृपया मुझे इसे सुधारने के लिए कुछ भी कर सकते हैं।)
[[0 0]]आउटपुट दे सकता है [[0 0] []]?