समस्या की परिभाषा
किसी दिए गए सेट के अधिकार को प्रिंट करें। उदाहरण के लिए:
[1, 2, 3] => [[], [1], [2], [3], [1, 2], [1, 3], [2, 3], [1, 2, 3]]
प्रत्येक तत्व को एक अलग लाइन पर मुद्रित किया जाना है, इसलिए उपरोक्त उदाहरण निम्नानुसार मुद्रित किया जाएगा:
[]
[1]
[2]
...
[1, 2, 3]
उदाहरण कोड (डी में, अजगर उदाहरण यहाँ ):
import std.stdio;
string[][] powerset(string[] set) {
if (set.length == 1) {
return [set, []];
}
string[][] ret;
foreach (item; powerset(set[1 .. $])) {
ret ~= set[0]~item;
ret ~= item;
}
return ret;
}
void main(string[] argv) {
foreach (set; powerset(argv[1 .. $]))
writeln(set);
}
इनपुट
तत्वों को तर्क के रूप में पारित किया जाएगा। उदाहरण के लिए, ऊपर दिए गए उदाहरण को एक कार्यक्रम में दिया जाएगा, जिसे इस प्रकार कहा powerset
जाता है:
powerset 1 2 3
तर्क अल्फ़ान्यूमेरिक होंगे।
नियम
- Io के अलावा कोई लाइब्रेरी नहीं
- आउटपुट का आदेश नहीं देना पड़ता है
- पॉवर्स को संग्रहीत नहीं करना पड़ता है, केवल मुद्रित होता है
- सेट में तत्वों को सीमांकित किया जाना चाहिए (जैसे
1,2,3
,[1,2,3]
और['1','2','3']
स्वीकार्य हैं, लेकिन123
ऐसा नहीं है- ट्रेलिंग सीमांकक ठीक हैं (उदाहरण के लिए
1,2,3, == 1,2,3
)
- ट्रेलिंग सीमांकक ठीक हैं (उदाहरण के लिए
- बेस्ट बाइट्स की संख्या के आधार पर निर्धारित किया जाता है
सबसे अच्छा समाधान पहले प्रस्तुत करने के बाद 10 दिनों से कम नहीं तय किया जाएगा।
lambda L:reduce(lambda r,x:r+[s+[x]for s in r],L,[[]])
:।