সমস্যা সংজ্ঞা
প্রদত্ত সেটের পাওয়ারসেটটি মুদ্রণ করুন। উদাহরণ স্বরূপ:
[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
যুক্তিগুলি বর্ণমালা হবে।
বিধি
- আইও ছাড়া কোনও লাইব্রেরি নেই
- আউটপুট অর্ডার করতে হবে না
- পাওয়ারসেট সংরক্ষণ করতে হবে না, কেবল মুদ্রিত হবে
- সেটে থাকা উপাদানগুলিকে অবশ্যই সীমিত করতে হবে (যেমন
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,[[]])
।