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

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

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

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

उदाहरण

#include <iostream>
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] - 97] += 1;
   }
   int c = 0;
   for (int i=0 ;i<a ; i++) {
      if (frequency[str1[i] - 97] > 0){
         c += 1;
         frequency[str1[i] - 97] -= 1;
      } else
      break;
   }
   cout<<"Length of longest common prefix: " << c;
}
int main() {
   string str1="here", str2 = "there";
   longestPrefix(str1, str2);
}

आउटपुट

Length of longest common prefix: 4

  1. सी ++ प्रोग्राम अनुक्रमों के एक सेट में सभी अनुक्रमों के लिए सबसे लंबे समय तक सामान्य अनुक्रम खोजने के लिए

    यहां हम अनुक्रमों के एक सेट में सभी अनुक्रमों के लिए सबसे लंबे बाद के सामान्य को खोजने के लिए C++ प्रोग्राम पर चर्चा करेंगे। एल्गोरिदम Begin Take the array of strings as input. function matchedPrefixtill(): find the matched prefix between string s1 and s2 :    n1 = store length of string s

  1. C++ प्रोग्राम दो स्ट्रिंग्स को जोड़ने के लिए

    एक स्ट्रिंग एक आयामी वर्ण सरणी है जिसे एक शून्य वर्ण द्वारा समाप्त किया जाता है। दो स्ट्रिंग्स का संयोजन एक नई स्ट्रिंग बनाने के लिए उनका जुड़ना है। उदाहरण के लिए। String 1: Mangoes are String 2: tasty Concatenation of 2 strings: Mangoes are tasty दो तारों को जोड़ने का कार्यक्रम इस प्रकार दिया गया

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

    सबसे लंबे सामान्य सबस्ट्रिंग एल्गोरिथम के लिए सामान्य गतिशील प्रोग्रामिंग कार्यान्वयन O(nm) समय में चलता है। निम्नलिखित सबसे लंबे सामान्य सबस्ट्रिंग एल्गोरिथम का कार्यान्वयन है: उदाहरण def longest_common_substring(s1, s2):    m = [[0] * (1 + len(s2)) for i in xrange(1 + len(s1))]   &n