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

डिक्शनरी का सबसे लम्बा शब्द C++ में डिलीट करके

मान लीजिए कि हमारे पास एक स्ट्रिंग और एक स्ट्रिंग डिक्शनरी है, हमें डिक्शनरी में सबसे लंबी स्ट्रिंग ढूंढनी है, जो दिए गए स्ट्रिंग के कुछ वर्णों को हटाकर बनाई जा सकती है। यदि एक से अधिक संभावित परिणाम हैं, तो बस सबसे छोटे शब्द को सबसे छोटे लेक्सिकोग्राफिक क्रम के साथ लौटाएं। यदि कोई परिणाम नहीं है, तो एक रिक्त स्ट्रिंग लौटाएं। इसलिए यदि इनपुट "abpcplea" और d =["ale", "apple", "Monkey", "plea"] जैसा है, तो परिणाम "सेब" होगा।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • isSubsequence () नामक विधि को परिभाषित करें। इसमें s1 और s2 लगेंगे
  • j :=0
  • i के लिए 0 से s1 के आकार के बीच
    • अगर s2[j] =s1[i], तो j को 1 से बढ़ाएं
    • यदि j =s2 का आकार है, तो लूप तोड़ें
  • सही लौटें अगर j =s2 का आकार
  • मुख्य विधि से, निम्न कार्य करें -
  • उत्तर:=एक खाली स्ट्रिंग
  • i के लिए 0 से d – 1 के आकार के बीच
    • x :=d[i]
    • यदि x का आकार> उत्तर का आकार या x का आकार =उत्तर का आकार और x <उत्तर, तो
      • यदि isSubsequence(s, x) सत्य है, तो उत्तर :=x
  • रिटर्न रिटर्न

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

उदाहरण

#include <bits/stdc++.h>
using namespace std;
class Solution {
   public:
   bool isSubsequence(string s1, string s2){
      int j =0;
      for(int i = 0; i < s1.size(); i++){
         if(s2[j] == s1[i]){
            j++;
            if(j == s2.size()) break;
         }
      }
      return j == s2.size();
   }
   string findLongestWord(string s, vector<string>& d) {
      string ans = "";
      for(int i = 0; i < d.size(); i++){
         string x = d[i];
         if(x.size() > ans.size() || (x.size() == ans.size() && (x < ans))){
            if(isSubsequence(s, x)) ans = x;
         }
      }
      return ans;
   }
};
main(){
   vector<string> v = {"ale","apple","monkey","plea"};
   Solution ob;
   cout << (ob.findLongestWord("abpcplea", v));
}

इनपुट

"abpcplea"
["ale","apple","monkey","plea"]

आउटपुट

apple

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

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

  1. एक वाक्य में सबसे लंबे शब्द की लंबाई के लिए C++ प्रोग्राम

    कई स्ट्रिंग्स के वाक्य को देखते हुए और कार्य वाक्य में सबसे लंबी स्ट्रिंग की लंबाई ज्ञात करना है। उदाहरण Input-: hello I am here Output-: maximum length of a word is: 5 Input-: tutorials point is the best learning platform Output-: maximum length of a word is: 9 नीचे दिए गए कार्यक्रम में उपयोग किया

  1. पायथन में शब्दकोश में सबसे लंबा शब्द

    मान लीजिए कि हमारे पास एक अंग्रेजी शब्दकोश का प्रतिनिधित्व करने वाले शब्दों की एक सूची है, हमें दी गई शब्द सूची में सबसे लंबा शब्द ढूंढना है जिसे शब्दों में दूसरे शब्दों द्वारा एक समय में एक वर्ण बनाया जा सकता है। यदि एक से अधिक संभावित उत्तर हैं, तो सबसे छोटे शब्द को सबसे छोटे शब्दकोषीय क्रम के साथ