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

C++ में दिए गए स्ट्रिंग के कुछ वर्णों को हटाकर शब्दकोश में सबसे बड़ा शब्द खोजें

विचार करें कि हमारे पास एक शब्दकोश है, और एक स्ट्रिंग s है। शब्दकोश में सबसे लंबी स्ट्रिंग खोजें, जिसे स्ट्रिंग s के कुछ वर्णों को हटाकर बनाया जा सकता है। मान लीजिए कि s "apbreoigroakml" है, शब्दकोश में {"prog", "ram", "program"} है, तो परिणाम "कार्यक्रम" होगा।

इसे हल करने के लिए, हम सभी शब्दकोष शब्दों को पार करेंगे, और प्रत्येक शब्द के लिए, हम जांच करेंगे कि दिए गए स्ट्रिंग का अनुक्रम और ऐसे सभी शब्दों में सबसे लंबा है या नहीं। अंत में दिए गए स्ट्रिंग के साथ सबसे लंबे शब्द को बाद में लौटाएं।

उदाहरण

#include<iostream>
#include<vector>
using namespace std;
bool isSubSequence(string s1, string s2) {
   int m = s1.length(), n = s2.length();
   int j = 0;
   for (int i=0; i<n&&j<m; i++)
   if (s1[j] == s2[i])
      j++;
   return (j==m);
}
string getLongestSubstr(vector <string > dict, string s) {
   string result = "";
   int length = 0;
   for (string word : dict) {
      if (length < word.length() && isSubSequence(word, s)) {
         result = word;
         length = word.length();
      }
   }
   return result;
}
int main() {
   vector <string > dict = {"prog", "ram", "program"};
   string str = "apbreoigroakml" ;
   cout << getLongestSubstr(dict, str) << endl;
}

आउटपुट

program

  1. C++ . में दिए गए स्ट्रिंग में "1(0+)1" के सभी पैटर्न खोजें

    मान लीजिए कि एक स्ट्रिंग में 1(0+)1 जैसे पैटर्न हैं। जहां (0+) 1s की गैर-रिक्त लगातार घटनाओं को इंगित करता है। हमें सभी पैटर्न खोजने होंगे। पैटर्न ओवरलैप कर सकते हैं। स्ट्रिंग जरूरी नहीं कि एक बाइनरी स्ट्रिंग हो। यह केवल अंक और लोअरकेस वर्ण धारण कर सकता है। मान लीजिए कि स्ट्रिंग 1101001 की तरह है, त

  1. सी ++ प्रोग्राम दो दिए गए स्ट्रिंग्स में असामान्य वर्ण खोजने के लिए

    इस लेख में, हम दो अलग-अलग दिए गए स्ट्रिंग्स की तुलना के दौरान असामान्य वर्णों का पता लगाने के लिए एक कार्यक्रम पर चर्चा करेंगे। जैसा कि हम जानते हैं, तार और कुछ नहीं बल्कि पात्रों की एक सरणी है। इसलिए, तुलना के लिए हम एक स्ट्रिंग के वर्णों के माध्यम से खोजेंगे और साथ ही यह जांचेंगे कि क्या वह तत्व

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

    हम एक स्ट्रिंग के पात्रों को अलग-अलग क्रम में व्यवस्थित कर सकते हैं। यहां हम देखेंगे कि हम कैसे गिन सकते हैं कि किसी दिए गए स्ट्रिंग से कितने क्रमपरिवर्तन बन सकते हैं। हम जानते हैं कि यदि एक स्ट्रिंग abc है। इसमें तीन वर्ण हैं; हम उन्हें 3 में व्यवस्थित कर सकते हैं! =6 अलग-अलग तरीके। तो n वर्णों वा