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 पर सभी नोड्स प्रिंट करना C++ में दिए गए नोड से दूरी K पर सभी नोड्स प्रिंट करना

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

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

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

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

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