MATL , 20 बाइट्स
TiodgvYsG8XQ!"@gto?P
इनपुट एक स्तंभ सरणी है, ;
जिसे विभाजक के रूप में उपयोग किया जाता है।
इसे ऑनलाइन आज़माएं!
व्याख्या
एक उदाहरण के रूप में इनपुट सरणी पर विचार करें [1;2;3;5;7;4;6;7;9]
। कोड का पहला भाग Tiodgv
, इस सरणी को धर्मान्तरित करता है [1;1;1;0;0;1;0;1;0]
, जहाँ समानता का परिवर्तन1
दर्शाता है । (विशेष रूप से, कोड इनपुट सरणी के प्रत्येक प्रविष्टि की समता प्राप्त करता है, लगातार अंतर की गणना करता है, नॉनजरो मानों को धर्मान्तरित करता है , और एक प्रीपेन्ड करता है1
1
।)
फिर Ys
गणना करता है संचयी योग , दे रही है [1;2;3;3;3;4;4;5;5]
। इनमें से प्रत्येक नंबर को एक लेबल के रूप में उपयोग किया जाएगा , जिसके आधार पर इनपुट के तत्वों को समूहीकृत किया जाएगा । यह द्वारा किया जाता है G8XQ!
, जो इनपुट सरणी को एक सेल सरणी में विभाजित करता है जिसमें समूह होते हैं। इस मामले में यह देता है {[1] [2] [3;5;7] [4;6] [7;9]}
।
शेष कोड सेल सरणी पर पुनरावृत्त करता है ( "
)। प्रत्येक घटक संख्यात्मक सरणी के साथ धकेल दिया जाता है @g
। to
एक प्रति बनाता है और उसकी समता की गणना करता है । यदि ( ?
) परिणाम सत्य है, अर्थात सरणी सामग्री विषम हैं, तो सरणी फ़्लिप की गई है (P
) है।
स्टैक को अंत में प्रदर्शित किया जाता है। प्रत्येक न्यूमेरिकल वर्टिकल ऐरे को प्रदर्शित किया जाता है, जो न्यूलाइन्स द्वारा अलग किए गए नंबरों की एक सूची प्रदान करता है।