कभी-कभी, मेरे कोड में निरंतर मैट्रिसेस की सूची होती है:
[ [[1, 0],
[0, 1]],
[[1, 0],
[0,-1]],
[[0, 1],
[1, 0]],
[[0,-1],
[1, 0]] ]
यह स्क्रीन रियल एस्टेट का एक भयानक उपयोग है। मैं बहुत उन्हें एक दूसरे के बगल में लिखना चाहते हैं:
[ [[1, 0], [[1, 0], [[0, 1], [[0,-1],
[0, 1]], [0,-1]], [1, 0]], [1, 0]] ]
आपको पता चलेगा कि यह अभी भी एक वाक्यात्मक रूप से मान्य नेस्टेड सूची है, यह अब केवल आयताकार नहीं है और इसकी एक बहुत अलग संरचना है (विशेष रूप से, यह हर बार जब मैं 1x1 से बड़ा मैट्रिक्स जोड़ता हूं, तो यह गहरा हो जाता है)। हालांकि, इस नई सूची से मैट्रिसेस की प्रारंभिक सूची को फिर से बनाना संभव है।
ताकि मैं भविष्य में इस वाक्यविन्यास का उपयोग कर सकूं, मुझे आपको कुछ कोड लिखने की आवश्यकता है जो सरणियों को एक क्षैतिज व्यवस्था में लिखे गए मेट्रिसेस की सूची में लिखते हैं।
यह सुनिश्चित करने के लिए कि उत्तर स्रोत कोड में लेआउट पर मिलान 2 डी पैटर्न का प्रदर्शन नहीं करते हैं, इनपुट या तो बस सरणी ऑब्जेक्ट के रूप में दिया जाएगा, या यदि आप एक स्ट्रिंग प्रतिनिधित्व लेते हैं, तो इसमें कोई व्हाट्सएप नहीं होगा जो यह दर्शाता है कि कैसे कोड में शाब्दिक लिखा गया था। तो आपको इस तरह से कुछ इनपुट मिलेगा:
[[[1, 0], [[1, 0], [[0, 1], [[0,-1], [0, 1]], [0,-1]], [1, 0]], [1, 0]]]
और आउटपुट निम्न सरणी या उसके स्ट्रिंग प्रतिनिधित्व होना चाहिए (फिर से, कोई और लेआउट की आवश्यकता नहीं है):
[[[1, 0], [0, 1]], [[1, 0], [0,-1]], [[0, 1], [1, 0]], [[0,-1], [1, 0]]]
यह दो-भाग की चुनौती का पहला और आसान हिस्सा है। इस एक में, आप मान सकते हैं कि सभी मैट्रिस वर्ग हैं और समान आयाम हैं और वे एक दूसरे के बगल में ठीक से संरेखित हैं। दूसरे भाग में हम इन धारणाओं को शिथिल करेंगे।
नियम
इनपुट एक नेस्टेड सूची या इसकी कैनोनिकल स्ट्रिंग प्रतिनिधित्व (आपकी पसंद की भाषा में) होगी, और आपको परिणाम उसी प्रारूप में होना चाहिए। परिणाम में हमेशा कम से कम एक मैट्रिक्स होगा, और मैट्रिक्स 1x1 जितना छोटा हो सकता है। मेट्रिसेस में केवल 128 से कम निरपेक्ष मान वाले पूर्णांक (हस्ताक्षरित) होंगे।
आप एक प्रोग्राम या फ़ंक्शन लिख सकते हैं और इनपुट प्राप्त करने और आउटपुट प्रदान करने के किसी भी मानक तरीके का उपयोग कर सकते हैं।
आप किसी भी प्रोग्रामिंग भाषा का उपयोग कर सकते हैं , लेकिन ध्यान दें कि इन खामियों को डिफ़ॉल्ट रूप से मना किया गया है।
यह कोड-गोल्फ है , इसलिए सबसे छोटा वैध उत्तर - बाइट्स में मापा जाता है - जीतता है।
परीक्षण के मामलों
प्रत्येक परीक्षण के मामले में एक) सूची मैट्रिसेस एक दूसरे के बगल में रखी होती हैं क्योंकि वे कोड में होंगे (यह आपका इनपुट नहीं है ), बी) बाहरी व्हाट्सएप ( यह आपका इनपुट है) के बिना गैर- सूचीबद्ध सूची , सी) अपेक्षित उत्पादन।
Pretty: [ [[0]] ]
Input: [[[0]]]
Output: [[[0]]]
Pretty: [ [[-1]], [[0]], [[1]] ]
Input: [[[-1]],[[0]],[[1]]]
Output: [[[-1]],[[0]],[[1]]]
Pretty: [ [[1, 0], [[1, 0], [[0, 1], [[0,-1],
[0, 1]], [0,-1]], [1, 0]], [1, 0]] ]
Input: [[[1,0],[[1,0],[[0,1],[[0,-1],[0,1]],[0,-1]],[1,0]],[1,0]]]
Output: [[[1,0],[0,1]],[[1,0],[0,-1]],[[0,1],[1,0]],[[0,-1],[1,0]]]
Pretty: [ [[1, 0, 0], [[ 127, 63, 31], [[1, 0, 0], [[0, 0, 0],
[0, 1, 0], [ 15, 0, -15], [0, 0, 1], [0, 0, 0],
[0, 0, 1]], [ -31, -63, -127]], [0, 1, 0]], [0, 0, 0]] ]
Input: [[[1,0,0],[[127,63,31],[[1,0,0],[[0,0,0],[0,1,0],[15,0,-15],[0,0,1],[0,0,0],[0,0,1]],[-31,-63,-127]],[0,1,0]],[0,0,0]]]
Output: [[[1,0,0],[0,1,0],[0,0,1]],[[127,63,31],[15,0,-15],[-31,-63,-127]],[[1,0,0],[0,0,1],[0,1,0]],[[0,0,0],[0,0,0],[0,0,0]]]
[([1, 0], [0, 1]), ([1, 0], [0, -1]), ([0, 1], [1, 0]), ([0, -1], [1, 0])]
तीसरे testcase के लिए मान्य उत्पादन? यह मिश्रित सूची और टपल है।
[([1,0], ([1, 0}, ...
और इससे आपको अतिरिक्त जानकारी मिलेगी।