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

दिए गए दो स्ट्रिंग्स के सभी इंटरलीविंग्स को C++ में प्रिंट करें


इस समस्या में, हमें दो स्ट्रिंग str1 और str2 दिए गए हैं और हमें दोनों स्ट्रिंग से सभी इंटरलीविंग स्ट्रिंग्स को प्रिंट करना है।

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

आइए समस्या को समझने के लिए एक उदाहरण लेते हैं -

Input: str1 = “XY” str2= “NS”
Output: XYNS, XNYS, XNSY, NXYS, NXSY, NSXY

इस समस्या को हल करने के लिए, हम सभी पात्रों को तार में लेंगे। str1 =m की लंबाई और str2 =n की लंबाई इसलिए हम इन स्ट्रिंग्स से सभी इंटरलीव्ड स्ट्रिंग्स बनाएंगे।

सभी इंटरलीविंग स्ट्रिंग्स को प्रिंट करने के लिए, हम स्ट्रिंग्स के कैरेक्टर्स को ठीक करेंगे और स्ट्रिंग के सभी कॉम्बिनेशन के लिए रिकर्सिवली कॉल करेंगे।

उदाहरण

हमारे तर्क का कार्यान्वयन -

#include <iostream>
#include <string.h>
using namespace std;
void printStrings (char *str1, char *str2, char *iStr, int m, int n, int i) {
   if (m == 0 && n == 0)
      cout<<iStr<<endl ;
   if (m != 0) {
      iStr[i] = str1[0];
      printStrings(str1 + 1, str2, iStr, m - 1, n, i + 1);
   }
   if (n != 0) {
      iStr[i] = str2[0];
      printStrings(str1, str2 + 1, iStr, m, n - 1, i + 1);
   }
}
void generateInterleavingString(char *str1, char *str2, int m, int n) {
   char *iStr= new char[((m + n + 1)*sizeof(char))];
   iStr[m + n] ='\0';
   printStrings(str1, str2, iStr, m, n, 0);
}
int main() {
   char str1[] = "XY";
   char str2[] = "NS";
   cout<<"All interleaving string are :\n";
   generateInterleavingString(str1, str2, strlen(str1), strlen(str2));
   return 0;
}

आउटपुट

All interleaving string is −
XYNS
XNYS
XNSY
NXYS
NXSY
NSXY
है
  1. C++ में दिए गए नोड से k दूरी पर सभी नोड्स प्रिंट करें

    इस समस्या में, हमें एक बाइनरी ट्री, एक लक्ष्य नोड और एक पूर्णांक K दिया जाता है। हमें ट्री के सभी नोड्स को प्रिंट करना होता है जो लक्ष्य नोड से K की दूरी पर होते हैं। । बाइनरी ट्री एक विशेष पेड़ है जिसके प्रत्येक नोड में अधिकतम दो नोड (एक/दो/कोई नहीं) होते हैं। आइए समस्या को समझने के लिए एक उदाहरण

  1. C++ में बाइनरी ट्री में दो दिए गए स्तरों के बीच सभी नोड्स प्रिंट करें

    इस समस्या में, हमें एक बाइनरी ट्री और ट्री में दो लेवल (ऊपरी और निचले) दिए जाते हैं और हमें ट्री के ऊपरी और निचले स्तरों के बीच सभी नोड्स को प्रिंट करना होता है। बाइनरी ट्री एक विशेष पेड़ है जिसके प्रत्येक नोड में अधिकतम दो नोड (एक/दो/कोई नहीं) होते हैं। आइए समस्या को समझने के लिए एक उदाहरण लेते ह

  1. किसी दिए गए स्रोत से गंतव्य तक सभी पथों को C++ में प्रिंट करें

    इस समस्या में हमें एक निर्देशित ग्राफ़ दिया जाता है और हमें स्रोत से ग्राफ़ के गंतव्य तक के सभी पथों को प्रिंट करना होता है। निर्देशित ग्राफ़ किनारों वाला एक ग्राफ़ है जो शीर्ष a से b तक निर्देशित होता है। समस्या को समझने के लिए एक उदाहरण लेते हैं स्रोत =के गंतव्य =पी आउटपुट: K -> T -&