Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

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++ में इनपुट में अनुमत डुप्लीकेट के साथ अलग-अलग सॉर्ट किए गए क्रमपरिवर्तन प्रिंट करें

    इस प्रोग्रामिंग समस्या में, हमें एक स्ट्रिंग दी जाती है और हमें स्ट्रिंग तत्वों के अलग-अलग क्रमबद्ध क्रमपरिवर्तन मुद्रित करने होते हैं जिन्हें बनाया जा सकता है। इस समस्या के साथ शर्त यह है कि स्ट्रिंग में एक वर्ण हो सकता है जो एक से अधिक बार उत्पन्न होगा। साथ ही, दिए गए स्ट्रिंग को क्रमबद्ध क्रम में

  1. सी++ में स्ट्रिंग में सभी वर्णों को टॉगल करें

    यह प्रोग्राम स्ट्रिंग के कैरेक्टर को अपरकेस में ट्रांसलेट करता है। हालाँकि, यह कार्य c++ क्लास लाइब्रेरी की toUpper() विधि का उपयोग करके आसानी से प्राप्त किया जा सकता है। लेकिन इस कार्यक्रम में, हम इसे अपरकेस में वर्णों के ASCII मान की गणना करके करते हैं। एल्गोरिथम इस प्रकार है; एल्गोरिदम START &nbs

  1. जावा में एक स्ट्रिंग के सभी क्रमपरिवर्तन प्रिंट करें

    स्ट्रिंग के सभी क्रमपरिवर्तनों को प्रिंट करने के लिए जावा प्रोग्राम निम्नलिखित है - उदाहरण public class Demo{    static void print_permutations(String my_str,String my_ans){       if (my_str.length() == 0){          System.out.print(my_ans + " &