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

किसी दिए गए स्ट्रिंग के सभी क्रमपरिवर्तन प्रिंट करें


किसी दिए गए स्ट्रिंग के सभी क्रमपरिवर्तन को प्रिंट करना बैकट्रैकिंग समस्या का एक उदाहरण है। हम उप-समस्याओं को हल करने के लिए सबस्ट्रिंग के आकार को कम कर देंगे, फिर उस खंड से एक और क्रमपरिवर्तन प्राप्त करने के लिए फिर से पीछे हटेंगे।

उदाहरण के लिए, यदि स्ट्रिंग एबीसी है, तो सभी क्रमपरिवर्तन एबीसी, एसीबी, बीएसी, बीसीए, सीएबी, सीबीए होंगे।

इस एल्गोरिथ्म की जटिलता हे (एन!) यह एक बड़ी जटिलता है। जब स्ट्रिंग का आकार बढ़ता है, तो कार्य को पूरा करने में अधिक समय लगता है।

इनपुट और आउटपुट

Input:
A string “ABC”
Output:
All permutations of ABC is:
ABC
ACB
BAC
BCA
CBA
CAB

एल्गोरिदम

stringPermutation(str, left, right)

इनपुट: वर्णों की स्ट्रिंग और बाएँ और दाएँ अनुक्रमणिका।

आउटपुट: स्ट्रिंग के सभी क्रमपरिवर्तन प्रिंट करें।

Begin
   if left = right, then
      display str
   else
      for i := left to right, do
         swap str[left] and str[i]
         stringPermutation(str, left+1, right)
         swap str[left] and str[i]             //for backtrack
      done
End

उदाहरण

#include<iostream>
using namespace std;

void stringPermutation(string str, int left, int right) {
   if(left == right)
      cout << str << endl;
   else {
      for(int i = left; i<= right; i++) {
         swap(str[left], str[i]);
         stringPermutation(str, left + 1, right);
         swap(str[left], str[i]); //swap back for backtracking
      }
   }
}

int main() {
   string str = "ABC";
   cout << "All permutations of " << str << " is: " <<endl<<endl;
   stringPermutation(str, 0, str.size()-1);
}

आउटपुट

All permutations of ABC is:
ABC
ACB
BAC
BCA
CBA
CAB

  1. पायथन में एन सूचियों के सभी संभावित क्रमपरिवर्तन

    यदि हमारे पास दो सूचियाँ हैं और हमें पहले तत्व के प्रत्येक तत्व को दूसरी सूची के प्रत्येक तत्व के साथ संयोजित करने की आवश्यकता है, तो हमारे पास निम्न दृष्टिकोण हैं। लूप के लिए उपयोग करना इस सीधे आगे के दृष्टिकोण में हम प्रत्येक सूची से तत्वों के क्रमपरिवर्तन वाली सूचियों की एक सूची बनाते हैं। हम लू

  1. किसी दिए गए स्ट्रिंग के सभी क्रमपरिवर्तन मुद्रित करने के लिए पायथन प्रोग्राम

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक स्ट्रिंग दी गई है जिसकी हमें स्ट्रिंग के सभी संभावित क्रमपरिवर्तन प्रदर्शित करने की आवश्यकता है। आइए अब नीचे दिए गए कार्यान्वयन में समाधान देखें - उदाहरण # conversion def toString(List):    return &

  1. पायथन में किसी दिए गए स्ट्रिंग के सभी संभावित क्रमपरिवर्तन कैसे खोजें?

    किसी दिए गए स्ट्रिंग के सभी संभावित क्रमपरिवर्तनों को खोजने के लिए, आप itertools मॉड्यूल का उपयोग कर सकते हैं जिसमें एक उपयोगी विधि है जिसे क्रमपरिवर्तन (iterable[, r]) कहा जाता है। यह विधि टुपल्स के रूप में चलने योग्य तत्वों के क्रमिक r लंबाई क्रमपरिवर्तन लौटाती है। स्ट्रिंग के रूप में सभी क्रमपरि