সমস্যা বিবৃতি
যে কোন শব্দের পারমুটেশনের তালিকা দেওয়া হয়েছে। পারমুটেশনের তালিকা থেকে অনুপস্থিত স্থানচ্যুতি খুঁজুন।
উদাহরণ
If permutation is = { “ABC”, “ACB”, “BAC”, “BCA”} then missing permutations are {“CBA” and “CAB”}
অ্যালগরিদম
- প্রদত্ত সমস্ত স্ট্রিংগুলির একটি সেট তৈরি করুন
- এবং আরও একটি সেট সমস্ত পারমুটেশনের
- দুটি সেটের মধ্যে পার্থক্য ফেরত দিন
উদাহরণ
#include <bits/stdc++.h> using namespace std; void findMissingPermutation(string givenPermutation[], size_t permutationSize) { vector<string> permutations; string input = givenPermutation[0]; permutations.push_back(input); while (true) { string p = permutations.back(); next_permutation(p.begin(), p.end()); if (p == permutations.front()) break; permutations.push_back(p); } vector<string> missing; set<string> givenPermutations(givenPermutation, givenPermutation + permutationSize); set_difference(permutations.begin(), permutations.end(), givenPermutations.begin(), givenPermutations.end(), back_inserter(missing)); cout << "Missing permutations are" << endl; for (auto i = missing.begin(); i != missing.end(); ++i) cout << *i << endl; } int main() { string givenPermutation[] = {"ABC", "ACB", "BAC", "BCA"}; size_t permutationSize = sizeof(givenPermutation) / sizeof(*givenPermutation); findMissingPermutation(givenPermutation, permutationSize); return 0; }
আপনি যখন উপরের প্রোগ্রামটি কম্পাইল এবং এক্সিকিউট করবেন। এটি নিম্নলিখিত আউটপুট −
তৈরি করেআউটপুট
Missing permutations are CAB CBA