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

C++ में दूसरी स्ट्रिंग पर स्वैप करके दो स्ट्रिंग्स के बीच सबसे लंबा कॉमन प्रीफिक्स

मान लीजिए हमारे पास दो स्ट्रिंग्स str1 और str2 हैं। दूसरी स्ट्रिंग पर शून्य या अधिक स्वैप ऑपरेशन करने के बाद उनके बीच सबसे लंबा कॉमन प्रीफिक्स ढूंढना है। प्रत्येक ऑपरेशन में किन्हीं दो अक्षरों को स्वैप कर सकते हैं। उदाहरण: str1="HERE", str2="THERE" के लिए आउटपुट 4 होगा। दूसरी स्ट्रिंग को "HERET" बनाया जा सकता है, इसलिए सबसे लंबा प्रीफिक्स लंबाई 4 का है।

समाधान दृष्टिकोण

चूंकि हम केवल str2 पर स्वैप कर सकते हैं, और प्रीफिक्स की लंबाई अधिकतम करनी है। विचार: str1 को पार करें, और जांचें कि वर्तमान वर्ण की फ्रीक्वेंसी str1 में str2 में उसकी फ्रीक्वेंसी से कम या बराबर है या नहीं। यदि हां, तो आगे बढ़ें, अन्यथा ब्रेक करें और मिलान किए गए भाग की लंबाई प्रिंट करें।

C++ उदाहरण

#include <iostream>
#include <string>
using namespace std;

void longestPrefix(string str1, string str2) {
    int frequency[26] = {0};
    int a = str1.length();
    int b = str2.length();
    
    for (int i = 0; i < b; i++)
        frequency[str2[i] - 'a']++;
    
    int c = 0;
    for (int i = 0; i < a; i++) {
        if (frequency[str1[i] - 'a'] > 0) {
            c++;
            frequency[str1[i] - 'a']--;
        } else
            break;
    }
    cout << "Length of longest common prefix: " << c;
}

int main() {
    string str1 = "here", str2 = "there";
    longestPrefix(str1, str2);
    return 0;
}

आउटपुट

Length of longest common prefix: 4
  1. - C++ प्रोग्राम: सीक्वेंस के सेट में सभी सीक्वेंस के लिए कॉमन सबसे लंबी सबसीक्वेंस खोजना

    यहां हम एक C++ प्रोग्राम पर चर्चा करेंगे जो एक सेट ऑफ सीक्वेंस में सभी सीक्वेंस के लिए कॉमन सबसे लंबी सबसीक्वेंस खोजता है। एल्गोरिदम Begin स्ट्रिंग्स की ऐरे को इनपुट के रूप में लें। function matchedPrefixtill(): स्ट्रिंग s1 और s2 के बीच मैच्ड प्रीफिक्स खोजें: n1 = स्ट्रिंग s1 की लं

  1. - C++ में दो स्ट्रिंग्स को जोड़ने (Concatenate) का प्रोग्राम

    एक स्ट्रिंग एक एक-आयामी कैरेक्टर सरणी है जो नल कैरेक्टर द्वारा समाप्त होती है। दो स्ट्रिंग्स का संयोजन (Concatenation) उन्हें जोड़कर एक नई स्ट्रिंग बनाना है। उदाहरण के लिए। स्ट्रिंग 1: Mangoes are स्ट्रिंग 2: tasty 2 स्ट्रिंग्स का संयोजन: Mangoes are tasty दो स्ट्रिंग्स को जोड़ने का एक प्रोग्राम निम

  1. - पायथन में दो से अधिक स्ट्रिंग्स से सबसे लंबी सामान्य सबस्ट्रिंग कैसे खोजें

    लॉन्गेस्ट कॉमन सबस्ट्रिंग एल्गोरिदम के सामान्य डायनामिक प्रोग्रामिंग कार्यान्वयन O(nm) समय में चलते हैं। लॉन्गेस्ट कॉमन सबस्ट्रिंग एल्गोरिदम का निम्नलिखित कार्यान्वयन है: उदाहरण longest: longest = m[x][y] x_longest = x else: m[x][y