কম্পিউটার

C++-এ অক্ষরের পুনরাবৃত্তি সহ সমস্ত স্থানান্তর প্রিন্ট করুন


এই সমস্যায়, আমাদেরকে n অক্ষরের একটি স্ট্রিং দেওয়া হয়েছে এবং আমাদের স্ট্রিং-এর অক্ষরের সমস্ত পারমুটেশন প্রিন্ট করতে হবে। স্ট্রিং এর অক্ষর পুনরাবৃত্তি অনুমোদিত. স্থানচ্যুতি মুদ্রণ বর্ণানুক্রমিকভাবে করা উচিত (লেক্সিকোগ্রাফিকভাবে সাজানো ক্রম)।

বিষয়টি আরও ভালোভাবে বোঝার জন্য একটি উদাহরণ দেওয়া যাক :

ইনপুট −৷ XY

আউটপুট - XX, XY, YX, YY

এই সমস্যা সমাধানের জন্য, আমাদের ফিক্স এবং রিকার লজিক ব্যবহার করতে হবে। এখানে, আমরা অ্যারের প্রথম সূচীতে একটি উপাদান ঠিক করব এবং তারপর ক্রমানুসারে পরবর্তী উপাদানগুলির জন্য বারবার কল করব।

আসুন একটি বাস্তবায়ন উদাহরণ দেখি যা আপনার কাছে সমাধানটি পরিষ্কার করে দেবে।

ইনপুট স্ট্রিং XY।

1 সূচকে প্রথম উপাদানগুলি ঠিক করুন:X__

পুনরাবৃত্তিমূলকভাবে অন্যান্য উপাদানগুলিকে কল করুন এবং পূরণ করুন:XX -> XY

এখন index1 এ পরবর্তী উপাদানটি ঠিক করুন:Y__

পুনরাবৃত্তিমূলকভাবে অন্যান্য উপাদানগুলিকে কল করুন এবং পূরণ করুন:YX-> YY

একই যুক্তি 3,4,n দৈর্ঘ্যের স্ট্রিংয়ের জন্য ব্যবহার করা যেতে পারে।

উদাহরণ

#include <iostream>
#include<string.h>
using namespace std;
void printPermutations(char *str, char* permutations, int last, int index){
   int i, len = strlen(str);
   for ( i = 0; i < len; i++ ) {
      permutations[index] = str[i] ;
      if (index == last)
         cout<<permutations <<"\t";
      else
         printPermutations (str, permutations, last, index+1);
   }
}
int main() {
   char str[] = "ABC";
   cout<<"All permutations of the string with repetition of "<<str<<" are: "<<endl ;
   int len = strlen(str) ;
   char permutations[len];
   printPermutations (str, permutations, len-1, 0);
   return 0;
}

আউটপুট

All permutations of the string with repetition of ABC are:

AAA AAB AAC ABA ABB ABC ACA ACB ACC BAA BAB BAC BBA BBB BBC BCA BCB BCC CAA CAB CAC CBA CBB CBC CCA CCB CCC

  1. C++-এ সাজানো (লেক্সিকোগ্রাফিক) ক্রমানুসারে সমস্ত স্থানান্তর মুদ্রণ করুন

  2. C++-এ ইনপুটে অনুমোদিত ডুপ্লিকেট সহ স্বতন্ত্র বাছাইকৃত ক্রমাগত প্রিন্ট করুন

  3. C++ এ স্ট্রিং এর সমস্ত অক্ষর টগল করুন

  4. জাভাতে একটি স্ট্রিং এর সমস্ত স্থানান্তর প্রিন্ট করুন