3x3 कनेक्टेड घटक


9

चुनौती

3x3 राजा ग्रिड पर विचार करें, जैसा कि निम्नलिखित ASCII ग्राफिक में दिखाया गया है:

A--B--C
|\/|\/|
|/\|/\|
D--E--F
|\/|\/|
|/\|/\|
G--H--I

आपको इनपुट की लंबाई -9 पूर्णांकों की सूची के रूप में दिया गया है जो नोड्स के लेबलिंग का प्रतिनिधित्व करते हैं। उदाहरण के लिए, इनपुट [0,1,1,2,1,0,5,5,1]निम्नलिखित लेबलिंग का प्रतिनिधित्व करता है:

0--1--1
|\/|\/|
|/\|/\|
2--1--0
|\/|\/|
|/\|/\|
5--5--1

आपका आउटपुट इनपुट में पूर्णांकों का समूह है जो नोड्स के कनेक्टेड सेट का निर्माण करता है। अधिक स्पष्ट रूप से, आउटपुट nमें इनपुट से पूर्णांक होना चाहिए अगर और केवल लेबल के साथ नोड्स का सेट nजुड़ा हुआ है। इस उदाहरण में, एक स्वीकार्य आउटपुट होगा [1,2,5], क्योंकि दोनों 0एस जुड़े नहीं हैं। सबसे कम बाइट गिनती जीतती है।

विस्तृत नियम

  • आप अपनी इनपुट सूची में नोड्स के लिए एक निश्चित क्रम चुन सकते हैं , और आपको अपने उत्तर में यह बताना चाहिए। EFBDHCAGI के क्रम में, उपरोक्त लेबलिंग दी जाएगी [1,0,1,2,5,1,0,5,1]
  • आप एक पूर्ण कार्यक्रम या एक फ़ंक्शन लिख सकते हैं। बाद के मामले में, आउटपुट पूर्णांक का एक सेट हो सकता है यदि आपकी भाषा उन का समर्थन करती है।
  • आउटपुट सूची में डुप्लिकेट हो सकते हैं, लेकिन इसकी लंबाई 9 से अधिक नहीं होनी चाहिए।
  • मानक खामियों को अस्वीकार कर दिया जाता है।

परीक्षण के मामलों

इनमें ग्रिड से संरेखित एकल-अंक संख्याएं हैं; उन्हें अपने चुने हुए क्रम में समायोजित करें।

011
210 => 1 2 5
551

010
202 => 0 2
221

110
123 => 0 2 3
221

111
111 => 1
111

111
141 => 1 4
111

जवाबों:


4

जे, 54 बाइट्स

#~3 :'0<*/,+/ .*/^:8~y#|:y#,/,"1/({0&,:)3 3$#:13'"1@e.

एक कार्य क्रम में एक सूची ले रहा है ABCDEFGHI


एक निकटता मैट्रिक्स को देखते हुए एक आदेश का ग्राफ के n , ग्राफ जुड़ा हुआ है यदि और केवल यदि का (सभी प्रविष्टियों एक + मैं ) n अशून्य, कहाँ हो रहा है n × n पहचान मैट्रिक्स।

हम 3 × 3 किंग ग्रिड के क्रम में (निश्चित) आसन्न-प्लस-पहचान मैट्रिक्स से शुरू करते हैं (क्रम ABCDEFGHIमें) अर्थात्:

1 1 0 1 1 0 0 0 0
1 1 1 1 1 1 0 0 0
0 1 1 0 1 1 0 0 0
1 1 0 1 1 0 1 1 0
1 1 1 1 1 1 1 1 1
0 1 1 0 1 1 0 1 1
0 0 0 1 1 0 1 1 0
0 0 0 1 1 1 1 1 1
0 0 0 0 1 1 0 1 1

। प्रत्येक लेबल के लिए l, हम लेबल के नोड्स के अनुरूप पंक्तियों और स्तंभों का चयन करते हैं l। यह हमें उप- lस्तरित नोड्स के समीपवर्ती-प्लस-पहचान मैट्रिक्स देता है । हम इस मैट्रिक्स का उपयोग करके यह जांचने के लिए करते हैं कि उप-तार जुड़ा हुआ है, जैसा कि ऊपर वर्णित है।

हम उपरोक्त मैट्रिक्स का निर्माण यह देखते हुए करते हैं कि यदि हम करते हैं

    0 0 0
Z = 0 0 0
    0 0 0

तथा

    1 1 0
O = 1 1 1
    0 1 1

, तब मैट्रिक्स को 3 × 3 ब्लॉक मैट्रिक्स के रूप में देखा जा सकता है

O O Z
O O O
Z O O

, जिसके समान पैटर्न है O! एक 3 × 3 ब्लॉक में Oपैटर्न 1 1 0 1को दोहराकर निर्मित किया जाता है ।


यह एक अद्भुत उपाय है!
दृष्टिबाधित होने

3

सीजेएम, 56 67 बाइट्स

q~4/~\@{a1$2<-\(+}%)_)-{_(+{\(a@-\}}A?%+:+[$_(d+1$)c\+@]zLf|2f>:+|`

आदेश: CIGABFHDE

उदाहरण इनपुट:

[1 1 5 0 1 0 5 2 1]

आउटपुट:

[1 2 5]

यह सबसे पहले कोनों में संख्याओं को हटाता है जो पक्षों पर जुड़े संख्याओं के समान हैं। फिर यह पक्षों पर संख्याओं को हटाता है जो अगले पक्षों पर संख्याओं के समान हैं। अंत में यह दो या अधिक बार हुई सभी संख्याओं को हटा देता है और केंद्र संख्या को जोड़ देता है।


2

सीजेएम, 90 बाइट्स

यह एक बाढ़ आधारित बाढ़ पर आधारित है जिसे यहाँ समझाया गया है और इसे बहुत बड़ा किया जा सकता है!

q~:Q{:IQ3/S*Sca5*+:T;G,G*{:AT=1$={[WXZ5 4_~_)_)]Af+Tf=AT='#a+&,g{TA'#t:T;}*}*}%;aT\/,3<},p

के क्रम में इनपुट की आवश्यकता है ABCDEFGH:

[0 1 1 2 1 0 5 5 1]

और आउटपुट जुड़ा नोड है:

[1 1 2 1 5 5 1]

संक्षिप्त विवरण

  • सबसे पहले, मैं प्रत्येक लेबल के लिए इनपुट सरणी पर पुनरावृति करता हूं।
  • प्रत्येक पुनरावृत्ति में, मैं डिस्कनेक्ट नोड्स का पता लगाने के लिए फ्लडफ़िल करता हूं।
  • यदि डिस्कनेक्ट नोड्स की संख्या 1 से अधिक है, तो उस लेबल को काट दिया जाता है।
    • 1 क्योंकि एक लेबल इनपुट सरणी में भी सिर्फ 1 घटना हो सकती है।
  • फिर मैं बस डिस्कनेक्ट किए गए लेबल को फ़िल्टर करता हूं और सरणी को प्रिंट करता हूं।

पालन ​​करने के लिए पूर्ण स्पष्टीकरण

इसे यहाँ ऑनलाइन आज़माएँ

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.