इनपुट:
n
सीमा में एक पूर्णांक2 <= n <= 10
- सकारात्मक पूर्णांक की एक सूची
आउटपुट:
पूर्णांक को अपने बाइनरी प्रतिनिधित्व (बिना किसी अग्रणी शून्य) में परिवर्तित करें, और उन सभी को एक साथ जोड़ दें।
फिर सभी बाइनरी सबस्ट्रिंग निर्धारित करें n
जो बाड़ पोस्ट की मात्रा का उपयोग करके 'बाइनरी बाड़' बनाते हैं । प्रत्येक बाड़ पोस्ट के बीच रिक्त स्थान (शून्य) अप्रासंगिक हैं (कम से कम 1), लेकिन बाड़ के पोस्ट स्वयं सभी समान चौड़ाई के होने चाहिए।
यहाँ बाइनरी सबस्ट्रिंग्स को प्रत्येक के लिए मैच करना चाहिए n
:
n Regex to match to be a 'binary fence' Some examples
2 ^(1+)0+\1$ 101; 1100011; 1110111;
3 ^(1+)0+\10+\1$ 10101; 1000101; 110011011;
4 ^(1+)0+\10+\10+\1$ 1010101; 110110011011; 11110111100001111001111;
etc. etc. You get the point
n=4
उदाहरणों को देखते हुए :
1010101
^ ^ ^ ^ All fence posts have a width of one 1
^ ^ ^ with one or more 0s in between them
110110011011
^^ ^^ ^^ ^^ All fence posts have a width of two 1s
^ ^^ ^ with one or more 0s in between them
11110111100001111001111
^^^^ ^^^^ ^^^^ ^^^^ All fence posts have a width of four 1s
^ ^^^^ ^^ with one or more 0s in between them
फिर हम उन संख्याओं का उत्पादन करते हैं जो मैचों के बाइनरी अंकों का उपयोग करते हैं।
उदाहरण:
इनपुट: n=4
,L=[85,77,71]
इन पूर्णांक का द्विआधारी प्रतिनिधित्व एक साथ मिला है:
1010101 1001101 1000111
(नोट: रिक्त स्थान केवल उदाहरण के लिए स्पष्टीकरण के रूप में जोड़े गए हैं)।
चूंकि n=4
, हम रेगेक्स से मेल खाते हुए पदार्थ की तलाश करते हैं (1+)0+\10+\10+\1
, जिस स्थिति में हम दो पा सकते हैं:
1010101
(स्थिति में (1010101) 1001101 1000111
); और 11001101100011
(स्थिति में 101010(1 1001101 100011)1
)
पहली बाइनरी बाड़ केवल बाइनरी अंकों का उपयोग करती है 85
, और दूसरी बाइनरी बाड़ सभी तीन पूर्णांक से द्विआधारी अंकों का उपयोग करती है। तो इस मामले में उत्पादन होगा:
[[85],[85,77,71]]
चुनौती नियम:
- यद्यपि यह ऊपर के उदाहरण में भी वर्णित है, अंतिम वाक्य एक महत्वपूर्ण है: हम उन संख्याओं का उत्पादन करते हैं जिनके लिए बाइनरी अंकों का उपयोग 'बाइनरी बाड़' विकल्प में किया जाता है।
- I / O लचीला है। इनपुट पूर्णांक की एक सूची / सरणी / स्ट्रीम, स्पेस / अल्पविराम / न्यूलाइन सीमांकित स्ट्रिंग, आदि हो सकता है। आउटपुट एक 2D पूर्णांक-सूची, एक एकल सीमांकित स्ट्रिंग, एक स्ट्रिंग-सूची, नई-लाइन जो STDOUT से मुद्रित हो, आदि हो सकता है। आप तक सभी, लेकिन कृपया बताएं कि आपने अपने उत्तर में क्या उपयोग किया है।
- सूची का आउटपुट क्रम स्वयं अप्रासंगिक है, लेकिन प्रत्येक आंतरिक सूची का आउटपुट निश्चित रूप से इनपुट-सूची के समान क्रम में है। तो ऊपर दिए गए उदाहरण के साथ,
[[85,77,71],[85]]
एक मान्य आउटपुट भी है, लेकिन[[85],[77,85,71]]
ऐसा नहीं है। - जैसा कि आपने पहले ही उदाहरण (
85
) से देखा होगा , बाइनरी-अंकों का उपयोग कई बार किया जा सकता है। - रीगेक्स को पूरी तरह से सबस्ट्रिंग से मेल खाना चाहिए। तो
110101
या010101
कभी भी एक वैध 'बाइनरी फैंस' नहीं है (10101
हालांकि, iffn=3
)। - आउटपुट-सूची में आइटम अद्वितीय नहीं हैं, केवल 'बाइनरी बाड़' के बाइनरी-पोजीशन अद्वितीय हैं। यदि एक ही पूर्णांक (एस) के साथ कई 'बाइनरी फैंस' बनाए जा सकते हैं, तो हम उन्हें आउटपुट-सूची में कई बार जोड़ते हैं।
उदाहरण के लिए:n=2
,L=[109, 45]
(बाइनरी1101101 101101
) इन 'द्विआधारी बाड़' सबस्ट्रिंग फार्म कर सकते हैं:11011
(स्थिति में(11011)01 101101
);101
(स्थिति पर1(101)101 101101
);11011
(स्थिति पर110(1101 1)01101
);101
(स्थिति पर1101(101) 101101
);11011
(स्थिति पर110110(1 1011)01
);101
(स्थिति पर1101101 (101)101
);101
(स्थिति में1101101 101(101)
), इसलिए आउटपुट होगा[[109],[109],[109,45],[109],[109,45],[45],[45]]
।
एक और उदाहरण:n=2
,L=[8127]
(बाइनरी1111110111111
) इन 'द्विआधारी बाड़' सबस्ट्रिंग फार्म कर सकते हैं:1111110111111
(स्थिति में(1111110111111)
);11111011111
(स्थिति पर1(11111011111)1
);111101111
(स्थिति पर11(111101111)11
);1110111
(स्थिति पर111(1110111)111
);11011
(स्थिति पर1111(11011)1111
);101
(स्थिति में11111(101)11111
), इसलिए आउटपुट होगा[[8127],[8127],[8127],[8127],[8127],[8127]]
। - यदि कोई वैध आउटपुट संभव नहीं है, तो आप एक खाली सूची या कुछ अन्य प्रकार के फ़ालसे आउटपुट (
null
,false
एक त्रुटि, आदि फिर से, आपकी कॉल) वापस कर सकते हैं।
सामान्य नियम:
- यह कोड-गोल्फ है , इसलिए बाइट्स जीत में सबसे छोटा जवाब है।
कोड-गोल्फ भाषाओं को गैर-कोडगॉल्फिंग भाषाओं के साथ उत्तर पोस्ट करने से हतोत्साहित न करें। 'किसी भी' प्रोग्रामिंग भाषा के लिए यथासंभव संक्षिप्त उत्तर के साथ आने का प्रयास करें। - आपके उत्तर के लिए मानक नियम लागू होते हैं , इसलिए आपको उचित मापदंडों और रिटर्न-टाइप, पूर्ण कार्यक्रमों के साथ STDIN / STDOUT, फ़ंक्शन / विधि का उपयोग करने की अनुमति है। तुम्हारा फोन।
- डिफ़ॉल्ट लूपोल्स वर्जित हैं।
- यदि संभव हो, तो कृपया अपने कोड (यानी TIO ) के लिए एक परीक्षण के साथ एक लिंक जोड़ें ।
- साथ ही, आपके उत्तर के लिए स्पष्टीकरण जोड़ना अत्यधिक अनुशंसित है।
परीक्षण के मामलों:
Input: Output
(the binary below the output are added as clarification,
where the parenthesis indicate the substring matching the regex):
4, [85,77,71] [[85],[85,77,71]]
(1010101) 1001101 1000111; 101010(1 1001101 100011)1
2, [109,45] [[109],[109],[109,45],[109],[109,45],[45],[45]]
(11011)01 101101; 1(101)101 101101; 110(1101 1)01101; 1101(101) 101101; 110110(1 1011)01; 1101101 (101)101; 1101101 101(101)
3, [990,1,3,3023,15,21] [[990,1,3,3023],[990,1,3,3023],[1,3,3023],[21]]
(1111011110 1 11 1)01111001111 1111 10101; 11110(11110 1 11 101111)001111 1111 10101; 1111011110 (1 11 101111001111) 1111 10101; 1111011110 1 11 101111001111 1111 (10101)
2, [1,2,3,4,5,6,7,8,9,10] [[1,2,3],[2,3],[4,5],[5],[5,6,7],[6,7],[6,7],[8,9],[9],[10]]
(1 10 11) 100 101 110 111 1000 1001 1010; 1 (10 1)1 100 101 110 111 1000 1001 1010; 1 10 11 (100 1)01 110 111 1000 1001 1010; 1 10 11 100 (101) 110 111 1000 1001 1010; 1 10 11 100 10(1 110 111) 1000 1001 1010; 1 10 11 100 101 (110 11)1 1000 1001 1010; 1 10 11 100 101 1(10 1)11 1000 1001 1010; 1 10 11 100 101 110 111 (1000 1)001 1010; 1 10 11 100 101 110 111 1000 (1001) 1010; 1 10 11 100 101 110 111 1000 1001 (101)0
3, [1,2,3,4,5,6,7,8,9,10] [[4,5],[8,9]]
1 10 11 (100 101 )110 111 1000 1001 1010; 1 10 11 100 101 110 111 (1000 1001) 1010
10, [1,2,3,4,5,6,7,8,9,10] []
No binary fences are possible for this input
6, [445873,2075] [[445873,2075],[445873,2075],[445873,2075]]
(1101100110110110001 1)00000011011; 110(1100110110110001 100000011)011; 1101100(110110110001 100000011011)
2, [8127] [[8127],[8127],[8127],[8127],[8127],[8127]]
(1111110111111); 1(11111011111)1; 11(111101111)11; 111(1110111)111; 1111(11011)1111; 11111(101)11111
2, [10,10] [[10],[10,10],[10]]
(101)0 1010; 10(10 1)010; 1010 (101)0
4, [10,10,10] [[10,10],[10,10,10],[10,10]]
(1010 101)0 1010; 10(10 1010 1)010; 1010 (1010 101)0
[1,2,3]
टेस्टकेस 4 के लिए मान्य नहीं है? मैं बाड़ देखता हूं(1 10 11)
2, [10, 10]
[[10],[10,10],[10]]