সমস্যা বিবৃতি
যে কোন শব্দের পারমুটেশনের তালিকা দেওয়া হয়েছে। পারমুটেশনের তালিকা থেকে অনুপস্থিত স্থানচ্যুতি খুঁজুন।
উদাহরণ
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