কম্পিউটার

C++ এ একটি তালিকায় অনুপস্থিত পারমুটেশন


সমস্যা বিবৃতি

যে কোন শব্দের পারমুটেশনের তালিকা দেওয়া হয়েছে। পারমুটেশনের তালিকা থেকে অনুপস্থিত স্থানচ্যুতি খুঁজুন।

উদাহরণ

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

  1. C++ এ একটি লিঙ্কযুক্ত তালিকা সমতল করা

  2. C++ এ পার্টিশন তালিকা

  3. C++-এ পারমুটেশন II

  4. C++ এ স্ট্র্যান্ড সাজান