पूर्णांक की एक सरणी पर विचार करें:
[1, 0, 9, 1, 3, 8]
इस सूची को लगातार उदात्त में विभाजित करने के कई तरीके हैं। यहाँ तीन हैं:
A: [[1, 0, 9], [1, 3, 8]]
B: [[1], [0, 9], [1, 3], [8]]
C: [[1, 0], [9, 1], [3, 8]]
हम एक विभाजन Y को और दूसरे विभाजन X के शोधन को कहेंगे यदि X को इसके कुछ उपविभागों को एक साथ जोड़कर Y से प्राप्त किया जा सकता है ।
तो B
एक परिशोधन है A
: यदि हम पहले दो और अंतिम दो उपविजेताओं को एक साथ जोड़ते हैं, तो हम प्राप्त करते हैं A
। लेकिन C
है नहीं के एक शोधन A
: हम अलग करना होगा 9
और 1
आदेश ठीक करने के लिए में A
से। इसके अलावा, कोई भी विभाजन तुच्छ रूप से स्वयं का परिशोधन है।
ध्यान दें कि हमें किसी भी बिंदु पर किसी भी उदात्त या तत्व को पुनर्व्यवस्थित करने की अनुमति नहीं है।
चुनौती
दो विभाजनों (पूर्णांक की सूचियों की सूची) को देखते हुए X
और Y
, यह निर्धारित करें कि क्या Y
शोधन है X
।
आप यह मान सकते हैं कि विभाजनों में केवल पूर्ण से 0
लेकर पूर्णांक शामिल होंगे 9
। आपको लगता है कि मान नहीं करना चाहिए X
और Y
एक ही सूची का विभाजन कर रहे हैं (अगर वे नहीं हैं, वे भी एक दूसरे के शोधन नहीं हैं)। X
और / या Y
खाली हो सकता है लेकिन इसमें कभी भी खाली सब्लिस्ट नहीं होंगे।
आप STDIN (या निकटतम विकल्प), कमांड-लाइन तर्क या फ़ंक्शन तर्क के माध्यम से इनपुट लेने और STDOUT (या निकटतम वैकल्पिक), फ़ंक्शन रिटर्न मान या फ़ंक्शन (आउट) पैरामीटर के माध्यम से परिणाम आउटपुट कर सकते हैं, एक प्रोग्राम या फ़ंक्शन लिख सकते हैं।
इनपुट किसी भी सुविधाजनक स्ट्रिंग या सूची प्रारूप में लिया जा सकता है। चूंकि तत्व केवल एकल-अंक पूर्णांक होंगे, इसलिए आप सब्लिस्ट के भीतर एक सीमांकक को छोड़ना चुन सकते हैं, लेकिन सुनिश्चित करें कि अग्रणी 0
s संभव हैं। आप लेने के लिए X
और Y
विपरीत क्रम में चुन सकते हैं ।
आउटपुट सत्य होना चाहिए अगर Y
कोई शोधन X
और मिथ्या है अन्यथा।
आपका कोड उचित डेस्कटॉप मशीन पर 1 सेकंड में नीचे दिए गए प्रत्येक परीक्षण मामलों को हल करने में सक्षम होना चाहिए। (यह सरल ब्रूट बल समाधानों से बचने के लिए केवल एक शुद्धता जांच है।)
यह कोड गोल्फ है, इसलिए सबसे छोटा उत्तर (बाइट्स में) जीतता है।
परीक्षण के मामलों
प्रत्येक परीक्षण का मामला अपनी लाइन पर है, जैसा लिखा है X Y
। मैं कुछ क्षैतिज स्थान बचाने के लिए GolfScript / CJam-style array अंकन का उपयोग कर रहा हूं:
Truthy:
[] []
[[0]] [[0]]
[[1 0 9 1 3 8]] [[1 0 9] [1 3 8]]
[[1 0 9 1 3 8]] [[1 0 9 1 3] [8]]
[[1 0 9 1 3 8]] [[1] [0] [9] [1] [3] [8]]
[[1 0 9] [1 3 8]] [[1 0 9] [1 3 8]]
[[1 0 9] [1 3 8]] [[1] [0 9] [1 3] [8]]
[[9 8 8 5 8 2 7] [5] [1 4] [2 0 0 6 0 8 4 2 6 4 2 3 7 8 7 3 9 5 7 9 8 2 9 5] [3 9 8] [7 1 4 9 7 4 5 9] [3 3 3] [9 0 7 8] [3 9 4 7 2 7 8 0 3 0] [8 2 2 7 3 9 3 2] [2 9 0 8 5 4 1 8 5 5 6 2 0 9 2 7 7 9 2 7] [3 6] [1 2 7 7 4 4 2 9]] [[9 8] [8] [5 8 2] [7] [5] [1 4] [2] [0 0 6] [0] [8 4 2] [6 4] [2] [3] [7 8] [7 3] [9] [5 7 9] [8 2] [9 5] [3] [9 8] [7 1 4] [9 7] [4 5 9] [3 3] [3] [9 0] [7 8] [3] [9] [4] [7 2] [7 8] [0] [3 0] [8 2] [2] [7 3] [9 3] [2] [2] [9] [0] [8 5 4] [1 8] [5 5] [6] [2 0] [9] [2] [7 7 9] [2 7] [3 6] [1 2] [7 7] [4 4 2] [9]]
Falsy:
[[0]] []
[[0]] [[1]]
[[1 0 9]] [[1 0 9] [1 3 8]]
[[1 0 9] [1 3 8]] [[1 0 9 1 3 8]]
[[1 0 9] [1 3 8]] [[1 0 9]]
[[1 0 9] [1 3 8]] [[1 0] [9]]
[[1 0 9] [1 3 8]] [[1 0] [9 1] [3 8]]
[[1] [0 9] [1 3] [8]] [[1 0 9] [1 3 8]]
[[9 8 8 5 8 2 7] [5] [1 4] [2 0 0 6 0 8 4 2 6 4 2 3 7 8 7 3 9 5 7 9 8 2 9 5] [3 9 8] [7 1 4 9 7 4 5 9] [3 3 3] [9 0 7 8] [3 9 4 7 2 7 8 0 3 0] [8 2 2 7 3 9 3 2] [2 9 0 8 5 4 1 8 5 5 6 2 0 9 2 7 7 9 2 7] [3 6] [1 2 7 7 4 4 2 9]] [[9 8] [8] [5 8 2] [7] [5 1] [4] [2] [0 0 6] [0] [8 4 2] [6 4] [2] [3] [7 8] [7 3] [9] [5 7 9] [8 2] [9 5] [3] [9 8] [7 1 4] [9 7] [4 5 9] [3 3] [3] [9 0] [7 8] [3] [9] [4] [7 2] [7 8] [0] [3 0] [8 2] [2] [7 3] [9 3] [2] [2] [9] [0] [8 5 4] [1 8] [5 5] [6] [2 0] [9] [2] [7 7 9] [2 7] [3 6] [1 2] [7 7] [4 4 2] [9]]
लीडरबोर्ड
यहां एक नियमित लीडरबोर्ड और भाषा के अनुसार विजेताओं का अवलोकन करने के लिए एक स्टैक स्निपेट है।
यह सुनिश्चित करने के लिए कि आपका उत्तर दिख रहा है, कृपया अपना उत्तर शीर्षक मार्कडाउन टेम्पलेट का उपयोग करके शीर्षक के साथ शुरू करें:
# Language Name, N bytes
N
आपके सबमिशन का आकार कहां है। यदि आप अपने स्कोर में सुधार करते हैं, तो आप पुराने अंकों को हेडलाइन में रख सकते हैं, उनके माध्यम से स्ट्राइक करके। उदाहरण के लिए:
# Ruby, <s>104</s> <s>101</s> 96 bytes
<script>site = 'meta.codegolf'; postID = 5314; isAnswer = true; QUESTION_ID = 51719</script><script src='https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js'></script><script>jQuery(function(){var u='https://api.stackexchange.com/2.2/';if(isAnswer)u+='answers/'+postID+'?order=asc&sort=creation&site='+site+'&filter=!GeEyUcJFJeRCD';else u+='questions/'+postID+'?order=asc&sort=creation&site='+site+'&filter=!GeEyUcJFJO6t)';jQuery.get(u,function(b){function d(s){return jQuery('<textarea>').html(s).text()};function r(l){return new RegExp('<pre class="snippet-code-'+l+'\\b[^>]*><code>([\\s\\S]*?)</code></pre>')};b=b.items[0].body;var j=r('js').exec(b),c=r('css').exec(b),h=r('html').exec(b);if(c!==null)jQuery('head').append(jQuery('<style>').text(d(c[1])));if (h!==null)jQuery('body').append(d(h[1]));if(j!==null)jQuery('body').append(jQuery('<script>').text(d(j[1])))})})</script>
[[[1 0 9] [1 3 8]] [[1] [0 9] [1 3] [8]]]
या[["109" "138"] ["1" "09" "13" "8"]]
नहीं?